<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2015314377439688366</id><updated>2013-05-13T10:42:42.046-07:00</updated><category term='Repairs'/><category term='TeardownTube'/><category term='Dissassembled'/><category term='Projects'/><title type='text'>DIYtronics</title><subtitle type='html'>My electronic projects, How to's, Repairs, and Disassembled Hardware photos and videos.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default?start-index=26&amp;max-results=25'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-4877213197645570402</id><published>2013-03-27T10:19:00.001-07:00</published><updated>2013-03-27T10:20:31.225-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>Epson emp-s4 Projector LED Mod</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Recently during one of my Ebay window shopping sessions I came across a listing for an 'as is' Epson projector missing a lamp. It was sold as is because it would turn on and then simply flash a lamp error and since the lamp is much more expensive than the projector as a whole, the seller undoubtedly decided to sell just the projector rather than purchase a new bulb. The best part was that he was willing to part with it for $25 with free shipping. As far as I could tell nothing else was wrong with the projector so I took the plunge.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;While waiting for it to ship I read up on the control systems that these projectors use in order to control the ballast and lamp assembly. It looked like nothing more complicated than tricking an input to the main board to make the projector think a real lamp was inserted while in reality I would use a high power LED but more on that later.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A week later it arrived in a huge box and as I hurried back to my dorm room I tore it open in excitement. It has three lcds, one for red, blue, and green. These three images are added together with the help of a lens to create the final image. The next step was to remove the ballast and figure out how which two wires from its control cable sent the lamp ok indication. I noticed that the ballast (the circuit board on the bottom left in the picture below), had a digital control circuit mounted vertically with three optoisolators near the i/o cable. These chips are necessary to insure that the digital low voltage i/o dont mix with the high voltages present in the rest of the ballast or else this projector might release its magic smoke. In addition two of the optos were facing left while only one was facing right. This hinted to me that the one lone opto was the output sent to the main board pictured in the upper right below to tell it that the lamp was operating perfectly fine so that the projector would stay on instead of shutting off and giving an error like it would without a lamp inserted.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-FB8tMoh54es/UVMc5gJFIHI/AAAAAAAAAaE/6zmXVUugGaY/s1600/2013-03-21+13.41.22.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-FB8tMoh54es/UVMc5gJFIHI/AAAAAAAAAaE/6zmXVUugGaY/s320/2013-03-21+13.41.22.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;So my solution was to short out the two wires that led to this opto (found with the help of my multimeter). I also needed to tape down the lamp door safety open switch so it could operate with the cover off. Now when I shone a flashlight into the lens input on the upper left of the image above I could faintly see an image being projected from the projection lens on the bottom right. Bingo, now I was getting somewhere. Now I needed more POWER!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I had bought a 30W 2000 lumen LED and 2A ac/dc driver in anticipation of this exact purpose a while ago so I dug that out of my parts bin along with some optical lenses to focus the light. I drilled into an old pentium cpu heatsink and attached it to the LED because after a few seconds it got rather hot. The fan came with the heatsink so I just wired it up in parallel with the exhaust fan seen below to the upper right of the picture. Then I used some framing wire to attached the glass lens to the assembly. This ensures that the light is concentrated and evenly dispersed into the small window to the left.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-eXdpwPzJID4/UVMc7L0OXKI/AAAAAAAAAaQ/xyqPzd01cH4/s1600/2013-03-26+15.55.12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-eXdpwPzJID4/UVMc7L0OXKI/AAAAAAAAAaQ/xyqPzd01cH4/s320/2013-03-26+15.55.12.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Next I need a way to turn on and off the led because having the light on all the time when the projector was plugged in was no fun. I could have gotten fancy and dug into the buck control circuitry of my LED driver and done it that way but I opted for a more universal approach in case I wanted to upgrade the light source in the future. I patched a ac cable into the power input of the projector's main power supply board to gain access to 120V AC. Then I used a beefy relay pulled from an old computer battery backed ups (uninterpretable power supply). This small beast could handle 5A at 125V so it should be sufficient for the task. I placed out of the way it in a crevice in the bottom left of the projector as seen in the picture below. Normally when the coil is unenergized it opens the circuit so the LED is off. When it receives the signal from one of the other optos (I carefully tested with the projector open to see which control line to the ballast changed when the projector was turned on and off) it sends current through the relay switching the AC voltage into the LED driver thus turning the LED on. This way the hacked on LED would behave exactly like the original lamp: it turns on and off with the projector with no user intervention.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-clhTOaKtDD0/UVMc_tXhf4I/AAAAAAAAAaY/Xdi9DjGpBfA/s1600/2013-03-26+15.55.33.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-clhTOaKtDD0/UVMc_tXhf4I/AAAAAAAAAaY/Xdi9DjGpBfA/s320/2013-03-26+15.55.33.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-TLfIgjp8Buk/UVMdEWKc-eI/AAAAAAAAAag/NaROawT6Doc/s1600/2013-03-26+15.55.45.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-TLfIgjp8Buk/UVMdEWKc-eI/AAAAAAAAAag/NaROawT6Doc/s320/2013-03-26+15.55.45.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;The LED driver in the protective plastic shield on top of the main power supply can be seen above in addition to the small optoisolator and flyback diode circuit I built to handle automatic relay control to allow the projector to turn on and off the LED itself.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-RdVmW43KvjY/UVMdFrSX4KI/AAAAAAAAAao/p8KmssL8dMI/s1600/2013-03-26+15.56.00.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-RdVmW43KvjY/UVMdFrSX4KI/AAAAAAAAAao/p8KmssL8dMI/s320/2013-03-26+15.56.00.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;I pulled ground and +12V for the relay coil from these two spots on the main board.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-i3QgJPO0V8w/UVMcy5MEakI/AAAAAAAAAZ0/A2GzNC98x3I/s1600/2013-03-26+15.54.58.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-i3QgJPO0V8w/UVMcy5MEakI/AAAAAAAAAZ0/A2GzNC98x3I/s320/2013-03-26+15.54.58.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Finally a picture of the entire device fully modded to my liking. Its a thing of beauty.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Now for a test I played some video games on it for an hour and measured the internal temperatures to make sure that it would be fine. Here is a projected screen size of about 30" in pitch black room for your enjoyment.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-YDiaeYGZ5zc/UVMdIzwvGxI/AAAAAAAAAaw/lDg3kXW_8qY/s1600/2013-03-26+20.10.40.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-YDiaeYGZ5zc/UVMdIzwvGxI/AAAAAAAAAaw/lDg3kXW_8qY/s320/2013-03-26+20.10.40.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;And what game did I test I hear you ask. Only one of my favorites of all time ;-)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xE2n87l3Vbo/UVMdMp51RkI/AAAAAAAAAa4/HtLcXaPct8w/s1600/2013-03-26+20.38.09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-xE2n87l3Vbo/UVMdMp51RkI/AAAAAAAAAa4/HtLcXaPct8w/s320/2013-03-26+20.38.09.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-RMX705XTDIg/UVMc14cG1dI/AAAAAAAAAZ8/usZChnnIbfs/s1600/2013-03-26+14.31.20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-RMX705XTDIg/UVMc14cG1dI/AAAAAAAAAZ8/usZChnnIbfs/s320/2013-03-26+14.31.20.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8VGS4diXx5E/UVMdNHnMRoI/AAAAAAAAAbA/AqaGGkUukwQ/s1600/2013-03-26+20.38.46.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-8VGS4diXx5E/UVMdNHnMRoI/AAAAAAAAAbA/AqaGGkUukwQ/s320/2013-03-26+20.38.46.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;These images were about 30-35" diagonal. Not too bad. They look better in person its just that I had to use my phone cameras as I forgot to bring home my nice Sony camera for spring break. I can push the image to 45-50" and still be viewable in a pitch dark room but brightness degrades quickly. I'll see if I can get my hands on a 8000 lumen 100W LED and make this almost as bright as it originally would be with the stock lamp. Here is a quick video of the internals and it operating for those who are interested.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/pIuzNrxINEM/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/pIuzNrxINEM?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/pIuzNrxINEM?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;For now I will go ahead and call this hack a success. Now let me get back to beating Castlevania Symphony of the Night for the millionth time ...&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;If you have any questions feel free to comment below and I will do what I can to help.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/4877213197645570402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2013/03/epson-emp-s4-projector-led-mod.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/4877213197645570402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/4877213197645570402'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2013/03/epson-emp-s4-projector-led-mod.html' title='Epson emp-s4 Projector LED Mod'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-FB8tMoh54es/UVMc5gJFIHI/AAAAAAAAAaE/6zmXVUugGaY/s72-c/2013-03-21+13.41.22.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-2216075426704199965</id><published>2013-01-04T15:40:00.002-08:00</published><updated>2013-01-05T11:22:03.771-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>Yet Another POV Clock Project!</title><content type='html'>Yep. I'm at it again. Yet another POV display (my third iteration in fact). I'm a sucker for things that move and blink rapidly. You can see my past POV projects in the Projects tab above.&lt;br /&gt;&lt;br /&gt;This time instead of using a rotating disc or arm like I've done in the past I've opted to use a wand that oscillates back and forth to write out the image. I got the idea after seeing a commercial clock that uses the same mechanism. But you know it's no fun buying something ........ you have to make it to fully enjoy it!&lt;br /&gt;&lt;br /&gt;So I stated off by testing out several methods to generate the oscillations. I took apart several harddrives to harvest the armature coils and magnets only to find that they couldn't bear the load of a long wand and still oscillate quick enough and with large enough magnitude to be useful. So I dug into my junk bin to see if I could find an idea.&lt;br /&gt;&lt;br /&gt;I found a stiff yet springy piece of metal, a 'U' shaped plastic cut from a DIP tube, some coils from the brushless spindle motor in an old VCR I took apart ages ago, and two neodymium magnets from an old name tag. These would be the main components that would make up the armature and electromagnetic assembly. The springy metal is secured to the end of the plastic tube and the magnets are fitted on either side of the tube an inch or two above the metal. It looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-tq3JjaCkFKo/UOdm6J68bjI/AAAAAAAAAYc/R1T8sZvEd4Q/s1600/2013-01-01+15.29.34.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-tq3JjaCkFKo/UOdm6J68bjI/AAAAAAAAAYc/R1T8sZvEd4Q/s320/2013-01-01+15.29.34.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-NhhkIAmEX1I/UOdm6YNEoxI/AAAAAAAAAYg/WMhgRynVDC4/s1600/2013-01-01+13.50.55.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-NhhkIAmEX1I/UOdm6YNEoxI/AAAAAAAAAYg/WMhgRynVDC4/s320/2013-01-01+13.50.55.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-VII0gi30ngo/UOdm7ZTMAeI/AAAAAAAAAYs/FQnF4BiCzhk/s1600/2013-01-01+15.29.17.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-VII0gi30ngo/UOdm7ZTMAeI/AAAAAAAAAYs/FQnF4BiCzhk/s320/2013-01-01+15.29.17.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The leds are soldered to a little piece of perfboard and connected down the length of the tube with magnet wire. Here is a few pics of mechanism and leds working:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-W8Dpm78VNKs/UOdm-8gqd5I/AAAAAAAAAY8/puXPCm0h5Ro/s1600/2013-01-04+15.23.58.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-W8Dpm78VNKs/UOdm-8gqd5I/AAAAAAAAAY8/puXPCm0h5Ro/s320/2013-01-04+15.23.58.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-BDKQGBxzwGI/UOdm703cobI/AAAAAAAAAYw/uYmvTfsEiQI/s1600/2013-01-04+15.47.50%255B0%255D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-BDKQGBxzwGI/UOdm703cobI/AAAAAAAAAYw/uYmvTfsEiQI/s320/2013-01-04+15.47.50%255B0%255D.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Warning!!! Physics lecture incoming: so here is the general concept of how the mechanism works. The springy metal is secured to the base, and the coils are mounted on either side of the two magnets on the arm. A microcontroller with an adjustable oscillator drives a transistor which switches the coils which are wired in parallel. This kicks the magnets and the armature every once and a while inserting kinetic energy into the system (it's essentially a forcing function and a mass spring system which can be described by a simple differential equation). By tuning the rate of the driving electromagnetic pulse to the resonant frequency of the spring and mass armature you can get it to sustain a large amplitude oscillation. I knew Physics would come in handy one day!&lt;br /&gt;&lt;br /&gt;So, now I have a reliable oscillating mechanism as seen in this video:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/7G8FbVeLB5g/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7G8FbVeLB5g?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/7G8FbVeLB5g?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;And I have managed to get the leds all wired and working with a simple demo going: &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/Hr5yxGVX0JE/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Hr5yxGVX0JE?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/Hr5yxGVX0JE?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;So all I need to do now is add a photointurrupter to sense when the arm is at the starting position so that I can sync up the display and then code software for a character set and animations as well as add a real time clock chip. Oh and finish the case and solder the circuit. Don't worry I'll keep you all updated in the next upcoming steps for this project and I'm planning on releasing all of the code and schematics just because you guys are awesome. Stay tuned for the next thrilling installment of POV Clock!&lt;br /&gt;&lt;br /&gt;UPDATE!!! I've used the electromagnetic pulse controller's led output as a sync signal to varying degree to display the ceremonious "HELLO" message as a first text demo as seen below.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-XvXUzltQ__w/UOh9NeOB1II/AAAAAAAAAZQ/3FrecbLkVr8/s1600/2013-01-05+11.24.31%5B0%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-XvXUzltQ__w/UOh9NeOB1II/AAAAAAAAAZQ/3FrecbLkVr8/s320/2013-01-05+11.24.31%5B0%5D.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-dXLvAzWR7Po/UOh9NmDq79I/AAAAAAAAAZU/OgYj3JSSYhM/s1600/2013-01-05+11.25.05%5B0%5D.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-dXLvAzWR7Po/UOh9NmDq79I/AAAAAAAAAZU/OgYj3JSSYhM/s320/2013-01-05+11.25.05%5B0%5D.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/JnlUZmiRbZI/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/JnlUZmiRbZI?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/JnlUZmiRbZI?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;Note that I am seeing some problems with the low refresh rate manifesting itself as an annoying flickering. I'll have to think something up to fix this problem. Until then!</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/2216075426704199965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2013/01/yet-another-pov-clock-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/2216075426704199965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/2216075426704199965'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2013/01/yet-another-pov-clock-project.html' title='Yet Another POV Clock Project!'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-tq3JjaCkFKo/UOdm6J68bjI/AAAAAAAAAYc/R1T8sZvEd4Q/s72-c/2013-01-01+15.29.34.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-7141556902031646813</id><published>2012-12-20T12:22:00.002-08:00</published><updated>2012-12-20T12:22:12.379-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 14 - Nintendo DS</title><content type='html'>Here's the 14th episode of TeardownTube. Subscribe, comment, and like if  you want to see a different device dismantled every week. The videos are  not detailed instructions for repair but rather just for entertainment.  Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/GbY8NKKxBxo/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/GbY8NKKxBxo?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/GbY8NKKxBxo?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I explore inside a vintage 2004 Nintendo DS, the first in the line of the current gen dual screen portable game consoles. How did Nintendo manage to squeeze two 3" LCDs into your pocket? Find out in the video above.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=GbY8NKKxBxo"&gt;TeardownTube - episode 14 - Nintendo DS&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/7141556902031646813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/12/teardowntube-episode-14-nintendo-ds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/7141556902031646813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/7141556902031646813'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/12/teardowntube-episode-14-nintendo-ds.html' title='TeardownTube - episode 14 - Nintendo DS'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-6024562445418395036</id><published>2012-12-04T21:43:00.000-08:00</published><updated>2012-12-04T21:53:41.081-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 13 - PSP Go</title><content type='html'>Here's the 13th episode of TeardownTube. Subscribe, comment, and like if  you want to see a different device dismantled every week. The videos are  not detailed instructions for repair but rather just for entertainment.  Enjoy.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/q5ahmT_S9S8/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/q5ahmT_S9S8?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/q5ahmT_S9S8?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I tear into a sexy PSP Go I managed to score "broken" on Ebay for only $30. A stupidly easy fix. How did Sony manage to fit all of the goodness (well except for the UMD drive) of the psp down into the miniscule PSP Go? Find out as I explore and delve headfirst and have a "Go" at the PSP Go ... see what I did there?!!&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=q5ahmT_S9S8"&gt;TeardownTube - episode 13 - PSP Go&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wanna read my repair experience for this device? Read the writeup &lt;a href="http://diytronics.blogspot.com/2012/12/broken-psp-go-repair.html"&gt;HERE&lt;/a&gt;!</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/6024562445418395036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/12/teardowntube-episode-13-psp-go.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/6024562445418395036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/6024562445418395036'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/12/teardowntube-episode-13-psp-go.html' title='TeardownTube - episode 13 - PSP Go'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-4931785231202257693</id><published>2012-12-03T20:55:00.003-08:00</published><updated>2012-12-03T21:03:48.974-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Repairs'/><title type='text'>Broken PSP Go repair</title><content type='html'>I was crawling around Ebay about two weeks ago looking for good deals on broken but repairable electronics like I normally do. I've bought up countless iPods in the past to repair and resell. In fact just over Thanksgiving break I found a Nintendo DS that works perfectly but has a broken hinge for $5, but that is a story for another day. So begins a tale of an adventure on my most recent excursion.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-UJO08gda-aY/UL2BmabWNwI/AAAAAAAAAYE/t41wDxTjf5k/s1600/2012-12-03+23.50.10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-UJO08gda-aY/UL2BmabWNwI/AAAAAAAAAYE/t41wDxTjf5k/s320/2012-12-03+23.50.10.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This time I found a PSP Go (the full sized PSP's little digital media only cousin) that was listed by the seller, who was a reseller likely with no specialized knowledge about hardware, as "not turning on" and "unable to test without a charger". The description and the price ($30) piqued my interest. The photos posted showed that the unit was in good physical condition (with the exception of some scratches on the lcd). I wagered on the unit not having any water or electrical damage. It takes some experience and intuition to be able to tell what is repairable and what is too far gone. I just felt it in my gut that this would all work out in the end. So I took a gamble and quickly bought the device. I just hoped I hadn't thrown $30 away on a expensive paper weight. After all that has happened in the past.&lt;br /&gt;&lt;br /&gt;It just arrived today and I excitedly returned with the small package to my dorm room to begin operation. I was so excited that I slammed my knee into my desk twice and winced in pain as I attempted to diagnose the device. Just as the seller said the device did absolutely squat when the power switch was pressed. No surprises there!&lt;br /&gt;&lt;br /&gt;So I opened her up. Thanks Sony for using standard Phillips screws! If only they wouldn't use proprietary hardware ... but I digress. I was inside in under a minute. The only thing that was keeping me from the battery was an annoying warranty void sticker. Hah like I care. RIPPPPP! Well there goes the likely long gone warranty. I measured the voltage on the lithium ion battery and unsurprisingly it was completely dead. Oh well. Like the seller I didn't have the charging cable ... cough cough .. proprietary hardware ... so I was seemingly out of luck.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-iijpbloMCAY/UL1gTC7KvdI/AAAAAAAAAXg/n_OfDEKTTUo/s1600/2012-12-03+20.54.41.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-iijpbloMCAY/UL1gTC7KvdI/AAAAAAAAAXg/n_OfDEKTTUo/s320/2012-12-03+20.54.41.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But I'm an engineer and engineers are stubborn but more importantly they are resourceful. I had a familiar max1555 (lithium ion/polymer battery charge controller) wired up on a breadboard. Of course another problem popped up, the battery used an annoying tiny connector but all was not lost. I'm up at college so all I had was some twisty ties so I cut off the insulation and just poked the wires into the connector, dirty and ugly but it'll work. Now I just needed 5-8V preferably without sacrificing a USB cable or power cord. I had a USB to USART bridge module on hand and luckily it has a 5V output so I just tapped into that. I plugged it into a USB wallwart and waited for the battery to charge a bit. I hooked up a meter to keep an eye on the battery's voltage.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-BhBqXxf1JvQ/UL1gT36F5wI/AAAAAAAAAXo/8CqoczVCff0/s1600/2012-12-03+20.56.32.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-BhBqXxf1JvQ/UL1gT36F5wI/AAAAAAAAAXo/8CqoczVCff0/s320/2012-12-03+20.56.32.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-vkuutJjUOqw/UL1gUmxaDYI/AAAAAAAAAXw/XfEu3Lb9668/s1600/2012-12-03+20.57.00.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-vkuutJjUOqw/UL1gUmxaDYI/AAAAAAAAAXw/XfEu3Lb9668/s320/2012-12-03+20.57.00.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Well after the battery sat there for a while I grew impatient so I measured the battery to make sure it had some charge and threw it back into the device. I waited with bated breath as I flipped the power switch ... big fat NOTHING!!! Of course it wouldn't be that simple. Oh well ... save me Google! A few minutes of research netted me with the hint that holding left on the D-pad while pressing power may yet resurrect my unit. I had nothing to lose so tried it ...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pSUidBt9T_k/UL1gSgQcH9I/AAAAAAAAAXY/Imr0T4EuLx4/s1600/2012-12-03+13.46.16.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-pSUidBt9T_k/UL1gSgQcH9I/AAAAAAAAAXY/Imr0T4EuLx4/s320/2012-12-03+13.46.16.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;... and the PSP rose from its slumber to greet me with the XMB. Yeah. Now we are cooking. I thoroughly tested the unit and everything works. I ended up getting a device which used goes for around $80-100 online for only $30. All I needed was some patience, perseverence, and a huge pair of ... engineering skills!&lt;br /&gt;&lt;br /&gt;Every device I fix or take apart gives me experience and knowledge. I highly recommend going to thrift stores or surfing Ebay and picking up cheap old electronics to mess around with. There is no guarantee that everything will work out as well this experience, but the skills I have gained from not just my successes but also my failures work to further my capabilities as well as my confidence. Every little lesson is invaluable.&lt;br /&gt;&lt;br /&gt;Sorry I rambled on for a bit, but I just felt like trying to inspire other fellow engineers just starting out to take the plunge and mess around with some otherwise "broken" electronics and possibly save them from ending up in a landfill. Engineering and life are about being fearless and resourceful when conditions are not optimal. In the end I will be happy if my writeup was marginally entertaining and inspired others to do something similar.&lt;br /&gt;&lt;br /&gt;As always comment below if you have any questions or are in need of advice. I always try my best to help. See you at my next electronics hacking or repair escapade!</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/4931785231202257693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/12/broken-psp-go-repair.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/4931785231202257693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/4931785231202257693'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/12/broken-psp-go-repair.html' title='Broken PSP Go repair'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-UJO08gda-aY/UL2BmabWNwI/AAAAAAAAAYE/t41wDxTjf5k/s72-c/2012-12-03+23.50.10.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-8214801294009183556</id><published>2012-11-20T15:14:00.003-08:00</published><updated>2012-12-04T21:10:39.763-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 12 - External DVD Burner Drive</title><content type='html'>Here's the 12th episode of TeardownTube. Subscribe, comment, and like if  you want to see a different device dismantled every week. The videos are  not detailed instructions for repair but rather just for entertainment.  Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/r6g48ZmdZaM/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/r6g48ZmdZaM?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/r6g48ZmdZaM?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I take a peek at the inner construction of a standard laptop DVD burner drive inside of a usb to pata enclosure. How do they make these small enough to fit into the slimmest of laptops? Find out now.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=r6g48ZmdZaM"&gt;TeardownTube - episode 12 - External DVD Burner Drive&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/8214801294009183556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/11/teardowntube-episode-12-external-dvd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/8214801294009183556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/8214801294009183556'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/11/teardowntube-episode-12-external-dvd.html' title='TeardownTube - episode 12 - External DVD Burner Drive'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-8284250426889255098</id><published>2012-11-10T13:10:00.000-08:00</published><updated>2012-11-10T13:10:26.593-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 11 - Western Digital Passport External Drives</title><content type='html'>Here's the 11th episode of TeardownTube. Subscribe, comment, and like if  you want to see a different device dismantled every week. The videos are  not detailed instructions for repair but rather just for entertainment.  Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/jdvCG6AZciI/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jdvCG6AZciI?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/jdvCG6AZciI?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;In this episode I look inside two of my Western Digital Passport series drives. Is WD pulling a fast one on consumers? How did they manage to make the usb 3.0 drives even smaller than their older usb 2.0 variants? Watch to find out.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=jdvCG6AZciI"&gt;TeardownTube - episode 11 - Western Digital Passport External Drives&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/8284250426889255098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/11/teardowntube-episode-11-western-digital.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/8284250426889255098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/8284250426889255098'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/11/teardowntube-episode-11-western-digital.html' title='TeardownTube - episode 11 - Western Digital Passport External Drives'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-1980634299803927599</id><published>2012-10-27T12:56:00.001-07:00</published><updated>2012-10-27T12:56:41.199-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 10 - AAXA Technologies P1 Jr Pocket Projector</title><content type='html'>Here's the 10th episode of TeardownTube. Subscribe, comment, and like if  you want to see a different device dismantled every week. The videos are  not detailed instructions for repair but rather just for entertainment.  Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/4KXUI9QAFpI/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4KXUI9QAFpI?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/4KXUI9QAFpI?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I tear into my recent purchase. I've finally jumped on the bandwagon and bought a pocket pico projector. See what sorcery allows such a tiny device to project up to a 40 inch image.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=4KXUI9QAFpI"&gt;TeardownTube - episode 10 - AAXA Technologies P1 Jr Pocket Projector&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/1980634299803927599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/10/teardowntube-episode-10-aaxa.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/1980634299803927599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/1980634299803927599'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/10/teardowntube-episode-10-aaxa.html' title='TeardownTube - episode 10 - AAXA Technologies P1 Jr Pocket Projector'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-2331854738422810890</id><published>2012-10-27T12:52:00.002-07:00</published><updated>2012-10-27T12:52:30.196-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 9 - Gameboy Color and Game Cartridges</title><content type='html'>Here's the 9th episode of TeardownTube. Subscribe, comment, and like if  you want to see a different device dismantled every week. The videos are  not detailed instructions for repair but rather just for entertainment.  Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/gNOT1UNUHxA/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gNOT1UNUHxA?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/gNOT1UNUHxA?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I take a look at the first Nintendo portable system to sport a color screen. Just how similar is it to its monochrome cousin, the gameboy pocket? Also as a special treat I explore the insides of a few gameboy and advance cartridges as well as a flashcart I had sitting around. Enjoy.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=gNOT1UNUHxA"&gt;TeardownTube - episode 9 - Gameboy Color and Game Cartridges&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/2331854738422810890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/10/teardowntube-episode-9-gameboy-color.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/2331854738422810890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/2331854738422810890'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/10/teardowntube-episode-9-gameboy-color.html' title='TeardownTube - episode 9 - Gameboy Color and Game Cartridges'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-489398324953567672</id><published>2012-10-27T12:46:00.002-07:00</published><updated>2012-10-27T12:46:45.956-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 8 - Gameboy Advance SP+</title><content type='html'>Here's the 8th episode of TeardownTube. Subscribe, comment, and like if  you want to see a different device dismantled every week. The videos are  not detailed instructions for repair but rather just for entertainment.  Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/-SZQU5rNEco/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-SZQU5rNEco?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/-SZQU5rNEco?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I continue on with portable video game hardware history. What magic did the engineers at Nintendo squeeze into the foldable gba sp+? Watch to find out.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=-SZQU5rNEco"&gt;TeardownTube - episode 8 - Gameboy Advance SP+&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/489398324953567672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/10/teardowntube-episode-8-gameboy-advance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/489398324953567672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/489398324953567672'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/10/teardowntube-episode-8-gameboy-advance.html' title='TeardownTube - episode 8 - Gameboy Advance SP+'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-2188522262454557790</id><published>2012-09-17T15:49:00.000-07:00</published><updated>2012-09-17T15:49:09.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>Nokia LCD PIC driver revamp</title><content type='html'>It's been quite some time since I've published my last &lt;a href="http://diytronics.blogspot.com/2011/05/controlling-nokia5110-lcd-with-software.html"&gt;post&lt;/a&gt; on interfacing a Nokia 84x48 monochromatic LCD to a PIC microcontroller but I recently got the itch to port the driver code from its original assembler to the language I use most now, C. Once again I opted to write the SPI interface in software since it gives greater flexibility although at the cost of speed. I've upgraded from my paltry pic16f84a to the pic16f887 which offers several improvements including more memory, gpio, and an internal oscillator as well as many useful peripherals.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-HcB4DH5PED8/UFelXrbAKxI/AAAAAAAAAV0/M90MB9rPxaM/s1600/2012-09-17+18.22.27.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-HcB4DH5PED8/UFelXrbAKxI/AAAAAAAAAV0/M90MB9rPxaM/s320/2012-09-17+18.22.27.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-GcV6aRWz7RQ/UFelams7WRI/AAAAAAAAAWE/Yt6eglLOEHc/s1600/2012-09-17+18.15.44.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;I've also picked up many useful programming tricks up my sleeve since then. This time I've made the driver faster as well as added direct support for drawing full 84x48 black and white images that can be drawn in Microsoft paint. If anyone wants I can write up a tutorial on drawing an image in paint and exporting it to another program to generate the hex array that my PIC uses to draw. But for now enjoy the pretty pictures.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-YJeM2fEpdPk/UFelZhzcbKI/AAAAAAAAAV8/mh1n4GaAwJ4/s1600/2012-09-17+18.15.32.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-YJeM2fEpdPk/UFelZhzcbKI/AAAAAAAAAV8/mh1n4GaAwJ4/s320/2012-09-17+18.15.32.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-GcV6aRWz7RQ/UFelams7WRI/AAAAAAAAAWE/Yt6eglLOEHc/s1600/2012-09-17+18.15.44.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-GcV6aRWz7RQ/UFelams7WRI/AAAAAAAAAWE/Yt6eglLOEHc/s320/2012-09-17+18.15.44.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-JqkflDIEUis/UFeldMtLL1I/AAAAAAAAAWc/RIlKRXL_9m0/s1600/2012-09-17+18.16.15.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-JqkflDIEUis/UFeldMtLL1I/AAAAAAAAAWc/RIlKRXL_9m0/s320/2012-09-17+18.16.15.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BQBsORlrAt8/UFelcLaV6TI/AAAAAAAAAWU/h19gddzAAj0/s1600/2012-09-17+18.16.04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-BQBsORlrAt8/UFelcLaV6TI/AAAAAAAAAWU/h19gddzAAj0/s320/2012-09-17+18.16.04.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-WZERhX1-Skw/UFelbbZoZ_I/AAAAAAAAAWM/y5z6zev1NfQ/s1600/2012-09-17+18.15.54.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-WZERhX1-Skw/UFelbbZoZ_I/AAAAAAAAAWM/y5z6zev1NfQ/s320/2012-09-17+18.15.54.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;This software will make it much easier to develop user interfaces and graphics for future devices. I realize that the display I am using is a bit outdated, but the practice is useful towards someday interfacing to much higher resolution color displays. Anyway, I think I've rambled on for long enough. Here are the source and image files. Feel free to ask for any help should you wish to integrate this display into your own project. Stay tuned because I have many cool projects and videos planned.&lt;br /&gt;&lt;br /&gt;Files up on &lt;a href="http://www.mediafire.com/?yful41fyd7cnd"&gt;MediaFire&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/2188522262454557790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/09/nokia-lcd-pic-driver-revamp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/2188522262454557790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/2188522262454557790'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/09/nokia-lcd-pic-driver-revamp.html' title='Nokia LCD PIC driver revamp'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-HcB4DH5PED8/UFelXrbAKxI/AAAAAAAAAV0/M90MB9rPxaM/s72-c/2012-09-17+18.22.27.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-8390612311186173113</id><published>2012-09-07T11:03:00.002-07:00</published><updated>2012-09-07T11:03:13.776-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 7 - Gameboy Pocket</title><content type='html'>Here's the 7th episode of TeardownTube. Subscribe, comment, and like if you want to see a different device dismantled every week. The videos are not detailed instructions for repair but rather just for entertainment. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/CMqXv7x9Ydw/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CMqXv7x9Ydw?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/CMqXv7x9Ydw?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I venture into the past of portable video gaming when I lurk inside an old gameboy pocket. Find out what makes up the device which provided many children hours of joy in the 90's.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=CMqXv7x9Ydw"&gt;TeardownTube - episode 7 - Gameboy Pocket&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/8390612311186173113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/09/teardowntube-episode-7-gameboy-pocket.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/8390612311186173113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/8390612311186173113'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/09/teardowntube-episode-7-gameboy-pocket.html' title='TeardownTube - episode 7 - Gameboy Pocket'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-9089637371965983179</id><published>2012-08-28T13:11:00.002-07:00</published><updated>2012-08-28T13:11:32.917-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 6 - Hard Drive</title><content type='html'>&lt;br /&gt;Here's the #th episode of TeardownTube. Subscribe, comment, and like if you want to see a different device dismantled every week. The videos are not detailed instructions for repair but rather just for entertainment. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/0ktjm8bMJVU/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0ktjm8bMJVU?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/0ktjm8bMJVU?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I venture past the warranty stickers and torx screws in order to get a peek inside an old 40GB pata 3.5" disk drive I had collecting dust in a drawer. I will be going back to college soon so I will have to put off uploading episodes until I get settled. I will definitely be back and I have some cool surprises planned. Stay tuned!&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=0ktjm8bMJVU"&gt;TeardownTube - episode 6 - Hard Drive&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/9089637371965983179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/08/teardowntube-episode-6-hard-drive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/9089637371965983179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/9089637371965983179'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/08/teardowntube-episode-6-hard-drive.html' title='TeardownTube - episode 6 - Hard Drive'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-6231409027369969512</id><published>2012-08-09T06:01:00.004-07:00</published><updated>2012-08-09T06:02:01.778-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube - episode 5 - Gemei 4GB MP4 Player</title><content type='html'>Here's the 5th episode of TeardownTube. Subscribe, comment, and like if you want to see a different device dismantled every week. The videos are not detailed instructions for repair but rather just for entertainment. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/cDcx1qEybsA/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cDcx1qEybsA?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/cDcx1qEybsA?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;In this episode I reveal what cost cutting measures Chinese companies use to make the cheapest devices possible. Is it possible that I found a cheap MP4 player which isn't doomed for the trash and is worth more than the sum of its parts? Watch to find out.&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="https://www.youtube.com/watch?v=cDcx1qEybsA"&gt;TeardownTube - episode 5 - Gemei 4GB MP4 Player&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/6231409027369969512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/08/teardowntube-episode-5-gemei-4gb-mp4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/6231409027369969512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/6231409027369969512'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/08/teardowntube-episode-5-gemei-4gb-mp4.html' title='TeardownTube - episode 5 - Gemei 4GB MP4 Player'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-610713957649440456</id><published>2012-07-31T13:22:00.003-07:00</published><updated>2012-08-09T06:02:13.783-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube episode 4 - Palm Tungsten T2</title><content type='html'>Here's the fourth episode of TeardownTube. Subscribe, comment, and like if you want to see a different device  dismantled every week. The videos are not detailed instructions for  repair but rather just for entertainment. Enjoy.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/OvBPNgjgs3A/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OvBPNgjgs3A?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/OvBPNgjgs3A?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;In this episode I take a look at an old Palm computer I found at a local thrift store for a few dollars. Have I finally met my match: a device which I cannot dissect? Watch to find out. &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Link: &lt;a href="https://www.youtube.com/watch?v=OvBPNgjgs3A"&gt;TeardownTube - episode 4 - Palm Tungsten T2&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/610713957649440456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/07/teardowntube-episode-4-palm-tungsten-t2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/610713957649440456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/610713957649440456'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/07/teardowntube-episode-4-palm-tungsten-t2.html' title='TeardownTube episode 4 - Palm Tungsten T2'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-4777642790757800513</id><published>2012-07-26T14:25:00.005-07:00</published><updated>2012-07-26T14:26:18.163-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube episode 3 - PSone</title><content type='html'>Here's the third episode of TeardownTube. Subscribe, comment, and like if you want to see a different device  dismantled every week. The videos are not detailed instructions for  repair but rather just for entertainment. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/vjphGOzSS7A/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vjphGOzSS7A?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/vjphGOzSS7A?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;In this episode I crack open an old playstation one I scored at a thrift store a few years back. Its modchipped and awesome when paired with the 4" screen attachment.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Link: &lt;a href="https://www.youtube.com/watch?v=vjphGOzSS7A"&gt;TeardownTube - episode 3 - PSone&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/4777642790757800513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/07/teardowntube-episode-3-psone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/4777642790757800513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/4777642790757800513'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/07/teardowntube-episode-3-psone.html' title='TeardownTube episode 3 - PSone'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-6620458647201999896</id><published>2012-07-23T07:14:00.002-07:00</published><updated>2012-07-26T14:27:26.388-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube episode 2 - Gamecube</title><content type='html'>Here's the second episode of TeardownTube. Subscribe, comment, and like if you want to see a different device  dismantled every week. The videos are not detailed instructions for  repair but rather just for entertainment. Enjoy.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/LxHq_B0WDno/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LxHq_B0WDno?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/LxHq_B0WDno?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;In this episode I take a look inside an old Gamecube that was collecting dust in my closet. And then I put it all back together.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Link: &lt;a href="http://www.youtube.com/watch?v=LxHq_B0WDno"&gt;TeardownTube - episode 2 - Gamecube &lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/6620458647201999896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/07/teardowntube-episode-2-gamecube.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/6620458647201999896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/6620458647201999896'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/07/teardowntube-episode-2-gamecube.html' title='TeardownTube episode 2 - Gamecube'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-5046171439009558216</id><published>2012-07-13T05:39:00.001-07:00</published><updated>2012-07-26T14:26:28.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TeardownTube'/><title type='text'>TeardownTube episode 1 - Floppy Drive</title><content type='html'>I've started a new show on Youtube called TeardownTube and just posted the first episode. Join me as I tear apart and comment on various devices for your entertainment. Subscribe, comment, and like if you want to see a different device dismantled every week. The videos are not detailed instructions for repair but rather just for entertainment. Enjoy.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/qmu6uRh3qDo/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/qmu6uRh3qDo?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/qmu6uRh3qDo?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;In this episode I dismantle an old 3.5" floppy drive I pulled from an old tower PC. Ahh ... the smell of vintage computer hardware.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Link: &lt;a href="http://www.youtube.com/watch?v=qmu6uRh3qDo"&gt;TeardownTube - episode 1 - Floppy Drive&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/5046171439009558216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/07/teardowntube-episode-1-floppy-drive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/5046171439009558216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/5046171439009558216'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/07/teardowntube-episode-1-floppy-drive.html' title='TeardownTube episode 1 - Floppy Drive'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-8977314703358245936</id><published>2012-06-22T11:39:00.001-07:00</published><updated>2012-07-23T07:15:47.663-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Repairs'/><title type='text'>Fixing a PS3 Controller that Wont Charge</title><content type='html'>Recently I found a cheap used PS3 at a local Game and Trade that was closing its doors. It's the older "fat" 80GB model. Everything was in pretty good condition except for the controller. It was obviously the store demo controller and thus was unbelievably disgusting. I had to handle it with gloves on. I entirely disassembled it and disinfected every part of it. There were a few things wrong with it:&lt;br /&gt;&lt;br /&gt;1) I never eat or drink while playing for good reason (there was dried soda and chip fragments inside) along with mass amounts of gunk amassed from every hand that touched it.&lt;br /&gt;2) There was a screw missing and the bottom tab snapped off so it was obviously opened before.&lt;br /&gt;3) The analog nubs were missing their rubber tops.&lt;br /&gt;4) I didn't realize it until the controller had low battery, but it refuses to charge.&lt;br /&gt;&lt;br /&gt;I easily remedied the first two with a thorough cleaning and a screw from my screw collection. The third will be repaired with some help from my friend EBAY. Finally the last one was a little tricky. I think the charging issue might be due to some liquid damage. I measure the voltage when plugged into a USB adapter and noticed that instead of a nice 5V, I was getting a unstable 2V. This explains why the PS3 complains about too much current being drawn when the controller is plugged in. I figured I had nothing to lose so I went about trying to fix this problem.&lt;br /&gt;&lt;br /&gt;Ultimately I figured that it would be far easier and cheaper to add in my own charging circuitry than track down the short circuit culprit and replace parts I likely did not have on hand. I started with a chip I am very familiar with and had in my parts box, the max1555. This tiny five pin smt chip handles safely charging the lithium ion battery and even has an open collector output that is on when charging and off when done. It accepts USB 5V or DC up to 7V or so. I etched my own board and decided to make things difficult for my self by making it tiny (it ended up being not much larger than the sot23 package).&lt;br /&gt;&lt;br /&gt;I simply opted for a quick and dirty approach by covering a single sided  copper clad pcb with permanent marker and scrapped the areas I wanted  etched with a scalpel.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-6UQ-mGPLqgs/T-Rz8MJVZ_I/AAAAAAAAAS0/DZIh_CpzC8M/s1600/2012-06-21+21.34.23.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-6UQ-mGPLqgs/T-Rz8MJVZ_I/AAAAAAAAAS0/DZIh_CpzC8M/s320/2012-06-21+21.34.23.jpg" width="320" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Size comparison&amp;nbsp; to a US quarter.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-vzFhN1igpf0/T-Rz7lHLqvI/AAAAAAAAASo/OA2vNCTGLKM/s1600/2012-06-21+21.34.50.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-vzFhN1igpf0/T-Rz7lHLqvI/AAAAAAAAASo/OA2vNCTGLKM/s320/2012-06-21+21.34.50.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Man its hard taking pictures of something so small.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wtHeqrNeyVY/T-Rz7T4MW4I/AAAAAAAAASc/gbRgO6lZSa4/s1600/2012-06-21+21.58.43.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-wtHeqrNeyVY/T-Rz7T4MW4I/AAAAAAAAASc/gbRgO6lZSa4/s320/2012-06-21+21.58.43.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;All etched and ready to have marker removed with the help of some acetone.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-2SCWH7QB4sw/T-RzbgtCb5I/AAAAAAAAAR4/xBRQhsjrX3U/s1600/2012-06-21+22.49.20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-2SCWH7QB4sw/T-RzbgtCb5I/AAAAAAAAAR4/xBRQhsjrX3U/s320/2012-06-21+22.49.20.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Y-SfZVvJcSU/T-Rz7PN4h8I/AAAAAAAAASQ/NQpZr4zT3LQ/s1600/2012-06-21+22.46.07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-Y-SfZVvJcSU/T-Rz7PN4h8I/AAAAAAAAASQ/NQpZr4zT3LQ/s320/2012-06-21+22.46.07.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-3exHI_FIc24/T-Rz6_AoAII/AAAAAAAAASE/_-UQ8NlphTQ/s1600/2012-06-21+22.47.25.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-3exHI_FIc24/T-Rz6_AoAII/AAAAAAAAASE/_-UQ8NlphTQ/s320/2012-06-21+22.47.25.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Close ups after soldering in the components with a penny as a reference for size.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MlOQKMaPCgE/T-RzbTir0WI/AAAAAAAAARs/o6AGz2Rw4pw/s1600/2012-06-21+23.02.15.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-MlOQKMaPCgE/T-RzbTir0WI/AAAAAAAAARs/o6AGz2Rw4pw/s320/2012-06-21+23.02.15.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-3zYJy88kw9s/T-Rza9oxQ1I/AAAAAAAAARg/EZzmff5V99w/s1600/2012-06-21+23.02.30.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-3zYJy88kw9s/T-Rza9oxQ1I/AAAAAAAAARg/EZzmff5V99w/s320/2012-06-21+23.02.30.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;I proceeded to test the circuit by hooking her up to a lithium ion battery and measuring voltage and current. Crossed my fingers and held my breath just waiting for a small poof of failure which luckily never came.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-El-E1H0ya7E/T-RzajnfT1I/AAAAAAAAARU/Ng56NoQl3jQ/s1600/2012-06-22+09.23.39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-El-E1H0ya7E/T-RzajnfT1I/AAAAAAAAARU/Ng56NoQl3jQ/s320/2012-06-22+09.23.39.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Just shy of 4V, looks good. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-kQzMmwXOfXk/T-RzaV9lN4I/AAAAAAAAARI/4444dg0ygd8/s1600/2012-06-22+09.23.53.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-kQzMmwXOfXk/T-RzaV9lN4I/AAAAAAAAARI/4444dg0ygd8/s320/2012-06-22+09.23.53.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Charging at around 100mA looks safe.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Finally I needed to desolder (used a hot air gun, Warning: HOT) the USB female jack from the controller board and lift the V+ power pin so it would no longer power the broken internal charge circuitry and instead hooked into my own charger. I had to be quick but gentle with the hot air so I wouldn't damage anything.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-noX23YohyBU/T-SvHZk-LBI/AAAAAAAAAUw/zsFP_niLJ6M/s1600/2012-06-22+12.46.47.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-noX23YohyBU/T-SvHZk-LBI/AAAAAAAAAUw/zsFP_niLJ6M/s320/2012-06-22+12.46.47.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;Pulled socket and used desoldering braid and some alcohol to clean up a bit.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Da1iWCFgNrc/T-SvHA_KLZI/AAAAAAAAAUk/72bh76LbImY/s1600/2012-06-22+12.47.09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-Da1iWCFgNrc/T-SvHA_KLZI/AAAAAAAAAUk/72bh76LbImY/s320/2012-06-22+12.47.09.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;Cleaned up the socket as well and lifted the V+ pin.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Qqw9hr6Azxw/T-SvGeZQCMI/AAAAAAAAAUM/T5WW3H-89Fo/s1600/2012-06-22+12.53.02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-Qqw9hr6Azxw/T-SvGeZQCMI/AAAAAAAAAUM/T5WW3H-89Fo/s320/2012-06-22+12.53.02.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Replaced and soldered down.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UYrTmnS9IIE/T-SvGh3JA5I/AAAAAAAAAUY/ouNGhviLEkE/s1600/2012-06-22+12.52.48.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-UYrTmnS9IIE/T-SvGh3JA5I/AAAAAAAAAUY/ouNGhviLEkE/s320/2012-06-22+12.52.48.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Now all I needed to do was solder three wires: ground, V+ in, and battery+.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-63XZhStLTHY/T-SvF9py1OI/AAAAAAAAAUA/LykpcQyWQ08/s1600/2012-06-22+13.02.20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-63XZhStLTHY/T-SvF9py1OI/AAAAAAAAAUA/LykpcQyWQ08/s320/2012-06-22+13.02.20.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;Battery+ is orange and ground is brown. I used the gnd pad conveniently silk screened for me and plugged the battery in to find the battery+ (red wire on the battery).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8WEtfY_IGZQ/T-Suk86v9II/AAAAAAAAAT0/NYdNCEdtSvA/s1600/2012-06-22+13.02.43.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-8WEtfY_IGZQ/T-Suk86v9II/AAAAAAAAAT0/NYdNCEdtSvA/s320/2012-06-22+13.02.43.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;V+ in from USB is white and soldered to the lifted pin&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-IgMTfWpkXpg/T-SuktY6cFI/AAAAAAAAATo/_9HyFdPxxEA/s1600/2012-06-22+13.03.47.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-IgMTfWpkXpg/T-SuktY6cFI/AAAAAAAAATo/_9HyFdPxxEA/s320/2012-06-22+13.03.47.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Quick test to make sure everything still works. No magic smoke released here.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-VbZga0dg_mw/T-SukQTNv0I/AAAAAAAAATc/i9rMcX_oAGA/s1600/2012-06-22+13.19.32.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-VbZga0dg_mw/T-SukQTNv0I/AAAAAAAAATc/i9rMcX_oAGA/s320/2012-06-22+13.19.32.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;Taping wires so they wont interfere with the battery. I used some more tape to attach the charging board to the front under the SONY emblem.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bjMG0hDDVJE/T-Suj468mHI/AAAAAAAAATQ/QgxtRwZAkNI/s1600/2012-06-22+13.23.39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-bjMG0hDDVJE/T-Suj468mHI/AAAAAAAAATQ/QgxtRwZAkNI/s320/2012-06-22+13.23.39.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;Battery inserted.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Z_1oTw6YU2M/T-Suji9PhjI/AAAAAAAAATE/oEh0acQmprs/s1600/2012-06-22+13.26.11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-Z_1oTw6YU2M/T-Suji9PhjI/AAAAAAAAATE/oEh0acQmprs/s320/2012-06-22+13.26.11.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;All put back together and charging status led visible as an orange glow on the front.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Outcome: Success! Now I just need to replace the nubs and I'll have a good as new controller without having to shell out another fifty or sixty bucks. I already had all the parts so it cost nothing and only took around 2 hours in all. When not charging, the controller looks stock. I feel accomplished and saved a controller from being scrapped. Now I can get back to gaming once it charges up.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/8977314703358245936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/06/fixing-ps3-controller-that-wont-charge.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/8977314703358245936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/8977314703358245936'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/06/fixing-ps3-controller-that-wont-charge.html' title='Fixing a PS3 Controller that Wont Charge'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-6UQ-mGPLqgs/T-Rz8MJVZ_I/AAAAAAAAAS0/DZIh_CpzC8M/s72-c/2012-06-21+21.34.23.jpg' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-5726605592101451728</id><published>2012-05-08T19:45:00.002-07:00</published><updated>2012-05-16T13:17:53.690-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>Digital Magic 8 Ball</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-NHIfpB6pdgk/T6qCA3Dq51I/AAAAAAAAAQs/aXumK19Hcks/s1600/DSC00496.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;Is this one of the coolest projects I've made on the spur of the moment?&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-5IFu25W9KqQ/T6qB_WeHpJI/AAAAAAAAAQk/wtBSqOsJm-I/s1600/DSC00495.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-5IFu25W9KqQ/T6qB_WeHpJI/AAAAAAAAAQk/wtBSqOsJm-I/s320/DSC00495.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;The magic 8 ball is always correct!&lt;/div&gt;&lt;br /&gt;I remember I used to have a magic 8 ball key-chain as a kid. I loved asking it the stupidest questions and seeing it magically divine the answer. Either that or it just repeatedly responded with an anti-climatic ask again later. One day the magic just dried up ... literally, the purple fluid in the cavity evaporated! Randomly remembering this device, I decided on the spur of the moment, after learning how to seed and use the rand() function in the standard c library, to make my very own digital magic 8 ball (which would be impervious to drying up, but still vulnerable to releasing its magic smoke).&lt;br /&gt;&lt;br /&gt;I've moved on up from the pic16f84a to the 16f886. I know it is overkill for most of what I use it for, but it is great for prototyping because of the large program memory, abundance of peripherals, and gpio. Plus I love using the internal oscillator for anything that doesn't require an accurate clock.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-NHIfpB6pdgk/T6qCA3Dq51I/AAAAAAAAAQs/aXumK19Hcks/s1600/DSC00496.JPG" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-NHIfpB6pdgk/T6qCA3Dq51I/AAAAAAAAAQs/aXumK19Hcks/s320/DSC00496.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;This is the prototyping breadboard I use for everything with the icsp header in the middle, a built in li-polymer battery on the back and integrated charge controller at the top. Ignore the 8 pin dip rtc above the pic, I might add a clock feature and make my magic 8 ball a watch.&lt;/div&gt;&lt;br /&gt;The pic starts counting on start up until the user presses the button. This count value (which in effect is somewhat random) then seeds the pseudo random number generator. The number that it comes up with then determines which of the 20 replies the magic 8 ball will give. When the button is pressed again, the user is returned to the main screen asking for another question.&lt;br /&gt;&lt;br /&gt;I ported the code I wrote is assembly for the 16f84a which handles spi serial communication in software (I know I could have done it in hardware, but this way was more fun). Then I needed a function to initialize and clear the ram of the oled display. In addition, I ended up having to write a function which would handle parsing strings and generate the data necessary to write them to the graphical display. I wrote most of this months ago and reused code but for a different application. I haven't really optimized anything but everything works and I am happy with it.&lt;br /&gt;&lt;br /&gt;The only way to cheat the system is to hold the button or hit it immediately after the main screen loads, which ensures that the count value would be zero, which when seeded into rand() would produce the same value, which will always give the same reply.&lt;br /&gt;&lt;br /&gt;I plan on using smt components, ditching the oled pcb, using a CR2032, and polling another button via interrupt so that I can put the micro to sleep and wake it for software power control. The entire device should be not much larger than the 3cm oled (aka perfect as a key-chain). I might think of using an accelerometer or tilt switch and put the oled in the window of an actual magic 8 ball. It would look really cool glowing eerily from the surrounding dark window, magically predicting the future. Might add a clock and fit the entire device to a watch strap so I can wear it around, tell time, and make life altering decisions with it. Maybe I'll add some simple games. Who knows? Either way it will be a great gift for my sister.&lt;br /&gt;&lt;br /&gt;Ok ... there's one more question I need to ask it ... magic 8 ball ... will I ever become a famous electrical or computer engineer?&lt;br /&gt;&lt;div style="text-align: center;"&gt;.................................................&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-QmebmUV15RE/T6qB9j51pzI/AAAAAAAAAQc/NLHQEVscFGw/s1600/DSC00494.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-QmebmUV15RE/T6qB9j51pzI/AAAAAAAAAQc/NLHQEVscFGw/s320/DSC00494.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;... fine then if you don't want to answer me, who needs you anyway ...&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;ps. A friend suggested I also make a miniature 20 questions ... hmmmm interesting ... maybe later ...&lt;br /&gt;pps. Since summer is here expect many more projects :-)&lt;br /&gt;ppps. I might make a digital fortune cookie with hundreds of different fortunes. Not too hard if I reuse most of my current code. &lt;br /&gt;&lt;br /&gt;Here are the C and hex files for the project: &lt;a href="http://www.mediafire.com/?saeh5992iybts"&gt;Magic 8 Ball files.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update: Added Schematic&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0BxCyJYrwGc/T7QKr0PKBTI/AAAAAAAAAQ4/vHeEBKLJaog/s1600/digital+magic+8+ball.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="248" src="http://4.bp.blogspot.com/-0BxCyJYrwGc/T7QKr0PKBTI/AAAAAAAAAQ4/vHeEBKLJaog/s320/digital+magic+8+ball.bmp" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If you have any questions feel free to shoot below. Enjoy</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/5726605592101451728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/05/digital-magic-8-ball.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/5726605592101451728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/5726605592101451728'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/05/digital-magic-8-ball.html' title='Digital Magic 8 Ball'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-5IFu25W9KqQ/T6qB_WeHpJI/AAAAAAAAAQk/wtBSqOsJm-I/s72-c/DSC00495.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-7556125089004716457</id><published>2012-02-20T14:01:00.000-08:00</published><updated>2012-09-02T13:37:18.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>POV display v2.0</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-XIvffgeZhTI/Tw-EqhVJFXI/AAAAAAAAAQA/gU5-_n12_n8/s1600/2012-01-12%2B20.04.40.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-XIvffgeZhTI/Tw-EqhVJFXI/AAAAAAAAAQA/gU5-_n12_n8/s320/2012-01-12%2B20.04.40.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-au5hNS9bJUk/Tw-EpdvQaPI/AAAAAAAAAPc/yxTdO7Vo_wQ/s1600/2012-01-12%2B20.02.18.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-au5hNS9bJUk/Tw-EpdvQaPI/AAAAAAAAAPc/yxTdO7Vo_wQ/s320/2012-01-12%2B20.02.18.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Y95Uq5W3bdM/Tw-Ep_X0ZuI/AAAAAAAAAPk/2zj0bOUnsOs/s1600/2012-01-12%2B20.02.43.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-Y95Uq5W3bdM/Tw-Ep_X0ZuI/AAAAAAAAAPk/2zj0bOUnsOs/s320/2012-01-12%2B20.02.43.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9I92tbCvkyM/Tw-EqC77DUI/AAAAAAAAAP0/4k3R76NKnFg/s1600/2012-01-12%2B20.03.12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-9I92tbCvkyM/Tw-EqC77DUI/AAAAAAAAAP0/4k3R76NKnFg/s320/2012-01-12%2B20.03.12.jpg" width="320" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Major Update: Its been awhile since I started this rebooted attempt at a POV display. Since then I've moved on up to the pic16f886 and etched a smd pcb for the controller. Here are some pics and a test video with some more explanations. I'm hard at work coding software for it now that the hardware is almost complete. More to come.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/K4kmFsrOV90/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/K4kmFsrOV90?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/K4kmFsrOV90?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-S81zGWZvi24/UBG4J1NKmiI/AAAAAAAAAU8/Te9yc1odPsA/s1600/2012-07-23+17.43.54.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-S81zGWZvi24/UBG4J1NKmiI/AAAAAAAAAU8/Te9yc1odPsA/s320/2012-07-23+17.43.54.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;Home etched board. I drew the traces with a fine tipped permanent marker.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-rXX_8Iqp--M/UBG4LPKAJwI/AAAAAAAAAVE/XYOD0aOKD80/s1600/2012-07-23+17.44.07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-rXX_8Iqp--M/UBG4LPKAJwI/AAAAAAAAAVE/XYOD0aOKD80/s320/2012-07-23+17.44.07.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;Another view.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-PW4Yo_B1KsA/UBG4MbAr3EI/AAAAAAAAAVM/wpQb0YVUsEc/s1600/2012-07-23+18.27.25.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-PW4Yo_B1KsA/UBG4MbAr3EI/AAAAAAAAAVM/wpQb0YVUsEc/s320/2012-07-23+18.27.25.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;All soldered and ready to program the firmware over the in circuit serial programming header.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-jsub3RmQN24/UBG4Nvs01_I/AAAAAAAAAVU/KG3qKKEWw5w/s1600/2012-07-24+19.31.47.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-jsub3RmQN24/UBG4Nvs01_I/AAAAAAAAAVU/KG3qKKEWw5w/s320/2012-07-24+19.31.47.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;Everything secured and wired up. Note the penny I am using to balance the rotor.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-toCzkLdemgQ/UBG4OyS3OHI/AAAAAAAAAVc/fnPJSn0Wuvc/s1600/2012-07-24+19.32.13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-toCzkLdemgQ/UBG4OyS3OHI/AAAAAAAAAVc/fnPJSn0Wuvc/s320/2012-07-24+19.32.13.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&amp;nbsp;First test is a success!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-S6nKBFrpYvg/UBG4Pk3rRqI/AAAAAAAAAVk/z4mBhDaFSo0/s1600/2012-07-24+19.32.33.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-S6nKBFrpYvg/UBG4Pk3rRqI/AAAAAAAAAVk/z4mBhDaFSo0/s320/2012-07-24+19.32.33.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;Looks even cooler in the dark.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Update: I've finally gotten around to coding a full character set, string manipulation, and scrolling text animation. Unfortunately I'm heading back to university and wont get to touch this project until winter break. I will keep up churning out software projects though (its the only thing that keeps me sane between classes). Plus when I get settled I will start up TeardownTube episodes again. Don't worry I have a lot planned.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/MO_H4R8hk40/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MO_H4R8hk40?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/MO_H4R8hk40?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/7556125089004716457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2012/02/pov-display-v20.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/7556125089004716457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/7556125089004716457'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2012/02/pov-display-v20.html' title='POV display v2.0'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-XIvffgeZhTI/Tw-EqhVJFXI/AAAAAAAAAQA/gU5-_n12_n8/s72-c/2012-01-12%2B20.04.40.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-4305499151585832107</id><published>2011-10-13T07:58:00.000-07:00</published><updated>2012-07-26T16:32:59.401-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>Diy Portable video projector</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;My newest project is to build a pocket sized, battery powered portable video projector that accepts a standard composite input. It all started when I received an old jvc (circa 1998) vhs camcorder with a tiny color lcd viewfinder. I took it apart and started hacking it. I quickly found the composite input to the display driver but was unable to get the screen to accept input without tethering it to the camera's main board (which told me that the camera was somehow initializing the driver board for the display). I powered the screen with 12V and 5V but nothing happened without connecting three specific wires to the mainboard. Time went by and I decided to pick up the project again recently. I once again noticed the group of three wires that seemed fishy so the first thing I though was SPI. I looked up all the data sheets and traced these three to the Mitsubishi M62353FP which is a 8 channel DAC and confirmed that they were three wire SPI thanks to the datasheet. The outputs led to some inputs for the display driver (Sony CXA1854AR) which controlled color, contrast, etc. I tried sniffing the data that was coming from the camera's mainboard with my PICKIT2's logic tool, but it didn't make much sense. Instead I measured the analog voltages on each of the DAC's outputs, calculated the binary values using a formula from the datasheet and wrote up a driver for my PIC which sends a four bit address (for each of the 8 outputs) followed by the 8 bit output value. I wired everything up, plugged it in and everything worked like a charm (well colors are a bit washed out but that can be fixed by adjusting the software a little). So now onto making the optics for the projector.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-xQ2-f2b3jrQ/Tpb2TVPXhWI/AAAAAAAAANI/Sh4euFjclnc/s320/DSC00473.JPG" width="320" /&gt;&lt;/div&gt;&amp;nbsp;Here's a shot of the tiny LCD (Sony LCX005BK). Pretty low resolution but it was free so I wont complain.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zg4xcfjdOx0/Tpb2Wl66PXI/AAAAAAAAANQ/T1HxxP5MH_A/s1600/DSC00474.JPG" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-zg4xcfjdOx0/Tpb2Wl66PXI/AAAAAAAAANQ/T1HxxP5MH_A/s320/DSC00474.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Here is the backlight. High voltage and not so bright so it needs to go. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-I8rnu6GBpps/Tpb2YynXTzI/AAAAAAAAANY/SHK3GCrO5Xc/s1600/DSC00475.JPG" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-I8rnu6GBpps/Tpb2YynXTzI/AAAAAAAAANY/SHK3GCrO5Xc/s320/DSC00475.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;This is the other side of the backlight. Note the step up transformer and switching mosfet. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UVNhNd2dWeU/Tpb2bvlwXvI/AAAAAAAAANg/6LBNIQFLRlA/s1600/DSC00476.JPG" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-UVNhNd2dWeU/Tpb2bvlwXvI/AAAAAAAAANg/6LBNIQFLRlA/s320/DSC00476.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Finally here is where I am at right now. I am running it all off of a 12V wallwart, using a LM7805 linear regulator for the 5V line (when I go to make this battery powered I will use a lithium rechargeable battery and a TI step up converter module to get the 12V). My PIC is on the right (with a little development board I made to make things easier) with code to set display values. I plan on adding buttons to allow the user to change brightness, contrast, saturation, etc on the fly. On the left is the display driver. and I attached a 1W white led as a replacement for the original backlight.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-kN1jZpPxOG8/TpcmRVYhuxI/AAAAAAAAANo/xLI81GKVn7E/s1600/DSC00478.JPG" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-kN1jZpPxOG8/TpcmRVYhuxI/AAAAAAAAANo/xLI81GKVn7E/s320/DSC00478.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Hj9dTZquC28/TpcmUWp8wNI/AAAAAAAAANw/hFOFL-z6eks/s1600/DSC00479.JPG" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-Hj9dTZquC28/TpcmUWp8wNI/AAAAAAAAANw/hFOFL-z6eks/s320/DSC00479.JPG" width="320" /&gt;&lt;/a&gt; &lt;/div&gt;Sorry about the blurry display shots, photographing a .5" lcd is a lot more difficult than it would seem.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-DyLzgPZuk_o/TpcmXms7M4I/AAAAAAAAAN4/x4e2pPHhajM/s1600/DSC00480.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-DyLzgPZuk_o/TpcmXms7M4I/AAAAAAAAAN4/x4e2pPHhajM/s320/DSC00480.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Full set up with my ipod outputting video. More to come soon.&lt;br /&gt;datasheets available below:&lt;br /&gt;&lt;a href="http://www.alldatasheet.com/datasheet-pdf/pdf/46698/SONY/CXA1854AR.html"&gt;CXA1854AR&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.alldatasheet.com/view.jsp?Searchword=M62353FP"&gt;M62353FP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Update! Working on optical assembly and took some test photos of video projection.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_PHEqk8Iv94/Tq7zNOBMZ3I/AAAAAAAAAOQ/FuASk22mRdo/s1600/DSC00482.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-_PHEqk8Iv94/Tq7zNOBMZ3I/AAAAAAAAAOQ/FuASk22mRdo/s320/DSC00482.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Here's my test setup with the optical assembly and projection lens in the center.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-w89YMxQeHi4/Tq7zLAZC9mI/AAAAAAAAAOI/tOmtSw3JO4I/s1600/DSC00481.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-w89YMxQeHi4/Tq7zLAZC9mI/AAAAAAAAAOI/tOmtSw3JO4I/s320/DSC00481.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Picture of projection (about 10" or so) onto a glossy white screen in my room with blinds shut but lots of light seeping in. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-u6rQkD5CSTs/Tq7zJVsN68I/AAAAAAAAAOA/Z2lyyo8Y-m8/s1600/DSC00485.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-u6rQkD5CSTs/Tq7zJVsN68I/AAAAAAAAAOA/Z2lyyo8Y-m8/s320/DSC00485.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Had to drag the setup into my bathroom to get a completely dark background. Once again image is around 10". I noticed that I nicked the lcd's polarizing filter a bit and that there are some dead/stuck pixels in the screen which show up in the image. Oh well, I got all the parts for free and this is merely a proof of concept so I don't really care.&lt;br /&gt;&lt;br /&gt;Update: Made tons of progress on this project. Demo video below and pictures and explanation to come.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/OYVjVeH7vXQ/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OYVjVeH7vXQ?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/OYVjVeH7vXQ?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/4305499151585832107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2011/10/diy-portable-video-projector.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/4305499151585832107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/4305499151585832107'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2011/10/diy-portable-video-projector.html' title='Diy Portable video projector'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-xQ2-f2b3jrQ/Tpb2TVPXhWI/AAAAAAAAANI/Sh4euFjclnc/s72-c/DSC00473.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-3228593755534466395</id><published>2011-10-13T07:27:00.000-07:00</published><updated>2011-10-13T07:27:37.412-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dissassembled'/><title type='text'>Sandisk Sansa Clip+</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-PPd1FreDlis/Tpb0GqtlmyI/AAAAAAAAAMI/xAY_Z4B4hms/s1600/DSC00470.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-PPd1FreDlis/Tpb0GqtlmyI/AAAAAAAAAMI/xAY_Z4B4hms/s320/DSC00470.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-PsPRufFfu5c/Tpb0QTHyzjI/AAAAAAAAAMY/iBZoTS7SPVM/s1600/DSC00461.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-PsPRufFfu5c/Tpb0QTHyzjI/AAAAAAAAAMY/iBZoTS7SPVM/s320/DSC00461.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jFE33ZOngHg/Tpb0SfLv6eI/AAAAAAAAAMg/bpO6ZW0vzS8/s1600/DSC00462.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-jFE33ZOngHg/Tpb0SfLv6eI/AAAAAAAAAMg/bpO6ZW0vzS8/s320/DSC00462.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sgejWCImtGU/Tpb0Ub4V0QI/AAAAAAAAAMo/sxPUADeXrl8/s1600/DSC00463.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-sgejWCImtGU/Tpb0Ub4V0QI/AAAAAAAAAMo/sxPUADeXrl8/s320/DSC00463.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-tbUS4GeTu2M/Tpb0WEYYakI/AAAAAAAAAMw/HwhJBVWCeIo/s1600/DSC00465.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-tbUS4GeTu2M/Tpb0WEYYakI/AAAAAAAAAMw/HwhJBVWCeIo/s320/DSC00465.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-mLKdIkRuoDU/Tpb0YZ-xcmI/AAAAAAAAAM4/zaGzRwbfsJM/s1600/DSC00467.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-mLKdIkRuoDU/Tpb0YZ-xcmI/AAAAAAAAAM4/zaGzRwbfsJM/s320/DSC00467.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-dWn2Wl5NQZQ/Tpb0aJLfHLI/AAAAAAAAANA/eA5UCi5cvSQ/s1600/DSC00468.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-dWn2Wl5NQZQ/Tpb0aJLfHLI/AAAAAAAAANA/eA5UCi5cvSQ/s320/DSC00468.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-YMTDcejMnM8/Tpb0OwF4lWI/AAAAAAAAAMQ/sgpQ-RZlo-k/s1600/DSC00469.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-YMTDcejMnM8/Tpb0OwF4lWI/AAAAAAAAAMQ/sgpQ-RZlo-k/s320/DSC00469.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-mLKdIkRuoDU/Tpb0YZ-xcmI/AAAAAAAAAM4/zaGzRwbfsJM/s1600/DSC00467.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/3228593755534466395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2011/10/sandisk-sansa-clip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/3228593755534466395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/3228593755534466395'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2011/10/sandisk-sansa-clip.html' title='Sandisk Sansa Clip+'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-PPd1FreDlis/Tpb0GqtlmyI/AAAAAAAAAMI/xAY_Z4B4hms/s72-c/DSC00470.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-917276147880078419</id><published>2011-05-24T18:29:00.000-07:00</published><updated>2011-05-26T11:04:43.915-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>Controlling a nokia5110 lcd with software SPI on a pic16f84a</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9MZZOQr5r24/TdxaStNlmkI/AAAAAAAAALk/S3an-QL2Qz4/s1600/DSC00458.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-9MZZOQr5r24/TdxaStNlmkI/AAAAAAAAALk/S3an-QL2Qz4/s320/DSC00458.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DinQW_5S4JA/Td6VVTL7xRI/AAAAAAAAALw/6DTcBWe1eCY/s1600/DSC00459.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-DinQW_5S4JA/Td6VVTL7xRI/AAAAAAAAALw/6DTcBWe1eCY/s320/DSC00459.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-kH7t8R02zEE/Td6VW2q_jJI/AAAAAAAAAL0/jIdxnSFhTRY/s1600/DSC00460.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-kH7t8R02zEE/Td6VW2q_jJI/AAAAAAAAAL0/jIdxnSFhTRY/s320/DSC00460.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bgcSwgL9MGs/Tdxaa1Lc8ZI/AAAAAAAAALs/RjXZzej7LAY/s1600/DSC00452.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-bgcSwgL9MGs/Tdxaa1Lc8ZI/AAAAAAAAALs/RjXZzej7LAY/s320/DSC00452.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;My newest project has been implementing a software SPI routine so that my pic (which lacks hardware SPI) can communicate with a cheap nokia 84x48 graphical lcd (later I will show how I wired it up). I've written subroutines in assembly for setting x,y address of the lcd's ram as well as sending data or commands for initialization (8bit, but could be easily modified to work with 9bit color lcd protocols I've seen). I plan on using a look up table to store standard character hex data so that I can make things easier for myself in upcoming projects. I know that my code is pretty inefficient so I plan on fixing it a little later (but not bad for just reading the datasheet and a few hours of coding). I just have the mcu writing "Hello World!" and drawing a video game character sprite at the bottom (I converted the image by hand, but I could easily write a program to do that for me). This is just the beginning, I plan on using this, as well as everything else I've been working on in my projects to come. I plan on adding the ability to animate/scroll text and images and will update the site with the code once I get the chance. I also plan on describing the SPI protocol and lcd commands in detail. For now I will post the code to just write "Hello World" and draw a sprite.&lt;br /&gt;&lt;br /&gt;Start&amp;nbsp;&amp;nbsp;&amp;nbsp; BSF&amp;nbsp; 03h,5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;switch from bank 0 to 1&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVLW&amp;nbsp; b'00000000' ;Out RB to output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVWF 06h&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVLW&amp;nbsp; b'00000'&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ;Out RA to output&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVWF 05h&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BCF 03h,5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;switch from bank 1 to 0&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;;RB0=sclk&lt;br /&gt;;RB1=sda&lt;br /&gt;;RB2=D_C&lt;br /&gt;;RB3=Sce&lt;br /&gt;;RB4=reset&lt;br /&gt;;RB5=disp pwr&lt;br /&gt;Begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,3 ;disable serial&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,5 ;power on display&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,4 ;reset&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,4 ;release from reset&lt;br /&gt;&lt;br /&gt;; sel extended instruction set (h=1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00100001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_command&lt;br /&gt;&lt;br /&gt;; set Vop (Contrast)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'10111001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_command&lt;br /&gt;&lt;br /&gt;; sel normal instruction set (h=0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00100000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_command&lt;br /&gt;&lt;br /&gt;; display normal mode&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001100'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_command&lt;br /&gt;&lt;br /&gt;;---------------------------&lt;br /&gt;&lt;br /&gt;; draw H&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111111'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111111'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw e&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010101'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010101'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010101'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001100'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw l&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111111'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw l&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111111'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw o&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; goto y=1,x=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Dh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call setxy&lt;br /&gt;&lt;br /&gt;; draw W&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw o&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw r&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00011111'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw l&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111111'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw d&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001110'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001001'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111111'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;call _space&lt;br /&gt;&lt;br /&gt;; draw !&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01111101'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;;---------------------------&lt;br /&gt;; goto y=5,x=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000101'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Dh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call setxy&lt;br /&gt;;draw image block 4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'10000111';1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11111101';2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'10000001';3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01100001';4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001';5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11001001';6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00100101';7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00100101';8&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11100001';9&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00011001';10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000101';11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000011';12&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000011';13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001';14&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00111001';15&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11101101';16&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000111';17&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;; goto y=4,x=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000100'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Dh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call setxy&lt;br /&gt;;draw image block 3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000111';1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00111100';2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01100100';3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01010011';4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11110000';5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00111000';6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11111001';7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11111011';8&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'10010011';9&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11110100';10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11110100';11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01110100';12&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01110000';13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010000';14&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00100100';15&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'10011111';16&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11010000';17&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01110000';18&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;; goto y=3,x=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000011'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Dh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call setxy&lt;br /&gt;;draw image block 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00011100';1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010110';2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010010';3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010010';4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010011';5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00010001';6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00110001';7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00100000';8&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01100000';9&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01000000';10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11000000';11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'10000000';12&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000';13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000010';14&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00011111';15&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'01110001';16&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'11000000';17&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;; goto y=2,x=12&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000010'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00001100'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Dh&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call setxy&lt;br /&gt;;draw image block 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001';12&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000001';13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000011';14&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000010';15&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000010';16&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000011';17&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;&lt;br /&gt;a goto a &lt;br /&gt;&lt;br /&gt;;----------------------------&lt;br /&gt;&lt;br /&gt;spi_command&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,3 ;start serial transmission&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,2 ;D_C=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c1n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c1&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c1n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c2n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c2&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c2n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c3n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c3&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c3n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c4n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c4&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c4n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c5n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c5&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c5n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c6n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c6&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c6n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto c7n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c7&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c7n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto cd&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto cdn&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;cdn&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,3 ;end serial transmission&lt;br /&gt;return&lt;br /&gt;&lt;br /&gt;spi_data&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,3 ;start serial transmission&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,2 ;D_C=1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b1n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b1&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b1n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b2n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b2&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b2n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b3n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b3&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b3n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b4n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b4&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b4n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b5n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b5&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b5n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b6n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b6&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b6n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto b7n&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b7&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b7n&amp;nbsp;&amp;nbsp;&amp;nbsp; btfss 0Ch,7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto d&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; call one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; goto dn&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d&amp;nbsp;&amp;nbsp;&amp;nbsp; call zero&lt;br /&gt;dn&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,3 ;end serial transmission&lt;br /&gt;return&lt;br /&gt;&lt;br /&gt;zero&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,1 ;0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,0 ;sclk pulse&lt;br /&gt;return&lt;br /&gt;&lt;br /&gt;one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcf 06h,0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,1 ;1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 06h,0 ;sclk pulse&lt;br /&gt;return&lt;br /&gt;&lt;br /&gt;_space ;send byte='00000000', draw space&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movlw b'00000000'&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_data&lt;br /&gt;return&lt;br /&gt;&lt;br /&gt;setxy&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 0Ch,6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_command&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bsf 0Dh,7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movf 0Dh,0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movwf 0Ch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call spi_command&lt;br /&gt;return&lt;br /&gt;&lt;br /&gt;end</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/917276147880078419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2011/05/controlling-nokia5110-lcd-with-software.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/917276147880078419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/917276147880078419'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2011/05/controlling-nokia5110-lcd-with-software.html' title='Controlling a nokia5110 lcd with software SPI on a pic16f84a'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-9MZZOQr5r24/TdxaStNlmkI/AAAAAAAAALk/S3an-QL2Qz4/s72-c/DSC00458.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2015314377439688366.post-259774080219428081</id><published>2011-05-10T16:15:00.000-07:00</published><updated>2012-07-23T07:01:42.014-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projects'/><title type='text'>Capacitive Touch Sensor for pic16F84A (no special hardware required)</title><content type='html'>Here is my newest project I've been working on. I'll get more details up when I have the time. In the mean while enjoy the video.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/ZbnN8F_8eyc/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ZbnN8F_8eyc?f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266" src="http://www.youtube.com/v/ZbnN8F_8eyc?f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Update: Sorry its been awhile since my last update. I've been busy with work and my other projects. The capacitive sensing input is really simple because everything is done in software. Here's my hand drawn schematic for the input stage generalized so that any mcu can be used (For some reason I haven't yet installed a schematic program on my netbook and I don't feel like booting up my other laptop).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-_Qg_xJYg4lA/TpbxKSHoR7I/AAAAAAAAAMA/hnFdMxYWSWY/s1600/DSC00477.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-_Qg_xJYg4lA/TpbxKSHoR7I/AAAAAAAAAMA/hnFdMxYWSWY/s320/DSC00477.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It's amazing that all you really need is a single gpio and a resistor (the capacitance is provided by the traces on the breadboard). The ten megaohm resistor allows the discharge rate for the stray capacitance to be slowed down enough for the uC to measure. The uC just continually charges up this capacitance, puts the pin into high impedance by making it an input, and then counts until it measures the "capacitor" is discharged. This count can then be analyzed to determine if the pin has been pressed or not (the count increases if the button is pressed because your finger adds to the stray capacitance in parallel which increases the discharge time). That's pretty much all that's necessary other than some fancy algorithms for error proofing detection.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Update 2: I've finally gotten around to porting my capacitive touch sensing code to C. The code should work for most PICs and can be easily modified to change pin assignments and whatnot to work on any other chip you might need. Below you will find the function freqcapsense. All you need to do is call it and it will sense whether RA0 is being touch or not. I've included averaging multiple samples and an adjustable threshold in order to tweak the sensitivity and accuracy for any given setup. You can have it return a 1 or 0 for touch status or by commenting out the if else statement at the end and uncommenting the return current statement it will return the raw period value it is reading from the pin. Enjoy.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;int freqcapsense(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int avg;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int current=0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int thresh=29;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int trials=10;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(trials&amp;gt;0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; TRISA=0b0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RA0=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; delay();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; TRISA=0b1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while(RA0==1){current++;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; trials--;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; avg=(avg+current)/2;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((current-avg)&amp;gt;thresh){return 1;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else{return 0;}&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //return current;&lt;br /&gt;}&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://diytronics.blogspot.com/feeds/259774080219428081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://diytronics.blogspot.com/2011/05/capacitive-touch-sensor-for-pic16f84a.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/259774080219428081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2015314377439688366/posts/default/259774080219428081'/><link rel='alternate' type='text/html' href='http://diytronics.blogspot.com/2011/05/capacitive-touch-sensor-for-pic16f84a.html' title='Capacitive Touch Sensor for pic16F84A (no special hardware required)'/><author><name>sjm4306</name><uri>http://www.blogger.com/profile/03706778154317460033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_6jvUFlGTq20/TPwsaxM_HkI/AAAAAAAAAKA/8cYB8e-vEZY/S220/Picture%2B001.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-_Qg_xJYg4lA/TpbxKSHoR7I/AAAAAAAAAMA/hnFdMxYWSWY/s72-c/DSC00477.JPG' height='72' width='72'/><thr:total>17</thr:total></entry></feed>