tag:blogger.com,1999:blog-73120378286486224362008-08-05T07:12:10.252-05:00High On SolderJoehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comBlogger35125tag:blogger.com,1999:blog-7312037828648622436.post-57576486472003937552008-07-28T18:37:00.006-05:002008-07-30T19:51:26.619-05:00PC Power Usage (fun with a Kill-a-watt)Recently I purchased a <a href="http://www.p3international.com/products/special/P4400/P4400-CE.html">Kill-a-watt</a> power meter and since then I have been testing the power usage of my various PCs. The Kill-a-watt is a low cost (<a href="http://www.amazon.com/P3-International-P4400-Electricity-Monitor/dp/B00009MDBU?tag=particculturf-20">$20</a>) wall outlet power meter that will display the voltage, amperage, frequency, power-factor, wattage, volt-amps and kilowatt-hour usage of whatever you have plugged into the unit. In order to do a well rounded test of my computers I decided to monitor the power used during various activities. I tried to do tests that best matched tasks I primarily use the machines for (laptop for productivity, desktop for gaming, etc). I was most interested in testing my HTPC since it is turned on almost 100% of the time, so I left it plugged into the Kill-a-watt for 4 days to get a good average usage sample. The tests I decided to run were the following:<br /><br /><span style="font-weight: bold;">Off</span> - phantom power usage when unit is turned off<br /><span style="font-weight: bold;">Standby</span> - power draw when in standby mode<br /><span style="font-weight: bold;">Typical</span> - usage during general computing and web browsing<br /><span style="font-weight: bold;">Video Playback (SD)</span> - power usage while watching a standard definition video<span style="font-weight: bold;"><br />Video Playback (HD)</span> - power usage while watching a high definition video<br /><span style="font-weight: bold;">FLAC to MP3 Conversion</span> - a real world test intended to load the CPU but not the GPU<br /><span style="font-weight: bold;">Gaming (Mafia)</span> - test performed in Windows to give a reference for an older game<br /><span style="font-weight: bold;">Gaming (Half-Life 2)</span> - test performed in Windows to give a reference for a newer game<br /><br />Here are the specs and power test results for my laptop, desktop, and HTPC.<br /><br /><span style="font-size:100%;"><span style="font-weight: bold;">Dell M1330</span> </span><span style="font-size:100%;"><span style="font-weight: bold;">Laptop</span></span><br /><ul><li>Intel T7250 Core 2 Duo CPU (2.0 GHz, 65nm)</li><li>nVidia 8400m GS GPU</li><li>LED backlit LCD display</li><li>65W power supply</li><li>OS - Ubuntu 8.04 Linux &amp; Windows XP SP2<br /></li></ul><ul style="font-weight: bold;"><li>Off - 0W</li><li>Standby - 0W</li><li>Idle - 23W</li><li>Typical - 27W</li><li>Video Playback (SD) - 30W </li><li>Video Playback (HD) - 36W</li><li>FLAC to MP3 Conversion - 45W</li><li>Gaming (Mafia) - 54W</li><li>Gaming (Half-Life 2) - 56W</li></ul><span style="font-size:100%;"><span style="font-weight: bold;">Desktop</span></span><br /><ul><li>AMD Athlon 64 X2 3800+ CPU (2.0GHz, 90nm)</li><li>nVidia 7900GS GPU</li><li>500W Antec Earthwatts power supply</li><li>OS - Windows XP SP2<br /></li></ul><ul style="font-weight: bold;"><li>Off - 2W</li><li>Idle - 99W</li><li>Typical - 105W</li><li>Gaming (Mafia) - 130W</li><li>Gaming (Half-Life 2) - 158W</li></ul><span style="font-size:100%;"><span style="font-weight: bold;">HTPC</span></span><br /><ul><li>AMD Athlon 64 3200+ CPU (2.0 GHz, 90nm)</li><li>nVidia 7600GS GPU</li><li>250W Shuttle power supply</li><li>OS - Mythbuntu 8.04 Linux<br /></li></ul><ul style="font-weight: bold;"><li>Idle - 67W</li><li>Video Playback (SD) - 69W</li><li>Video Playback (HD) - 80W</li><li>FLAC to MP3 Conversion - 96W</li><li>4 Day Average - 67.5W</li></ul><span style="font-size:100%;">Going into these tests I knew that the laptop would draw the least power, but after </span><span><span style="font-size:100%;"><span style="font-size:100%;">looking at the data I have come to a few interesting conclusions:</span><br /></span></span><ol><li>Percentage wise the jump in power usage between the two gaming examples on the laptop vs the desktop are very different. This is most likely due to the considerably more capable Core 2 Duo CPU in the laptop not having to do nearly as much work as the Athlon 64 X2 in the desktop. Also the much more powerful GPU in the desktop has extra settings turned on (such as anti-aliasing) that are not used on the laptop.</li><li>As in #1 the laptop doesn't have to work much harder to play HD video than SD video, while the HTPC must do considerably more work to achieve the same performance.</li><li>I was pleasantly surprised to see how efficient my HTPC is. Recently I had been considering upgrading to a newer more efficient processor and motherboard, but after this test I don't feel I would be saving too much power. As you can see from my 4 day average test, the system runs at idle almost all the time. 67.5W per hour spread over a month is 48.6KWH. According to my last electric bill I pay $0.0455 per KWH, therefore the cost to run my HTPC for the month comes to only $2.21. Even with a new machine twice as efficient I would only be saving about $12 a year. This savings hardly offsets the hundreds I'd have to invest in a new system when my existing HTPC still performs adequately.<br /></li></ol>These tests were a lot of fun to do and I plan on doing more on the rest of my electronics in the near future.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-28229381402392719472008-06-25T13:24:00.010-05:002008-08-05T07:12:10.272-05:00Mythbuntu 8.04 Configuration & ReviewFor the past 16 months I have been using a simple home theater PC as a podcast aggregator, bittorrent client, and media center. The system consists of the following:<br /><ul><li>Shuttle SN21G5 barebones kit</li><li>AMD Athlon64 3200+ CPU</li><li>512MB DDR400 RAM</li><li>500GB SATA HD</li><li>nVidia 7600GS GPU (w/heatsink only for silent operation)</li><li>8x DVD Burner</li><li>Sharp 720p HDTV<br /></li></ul>Running <a href="http://www.ubuntu.com/">Ubuntu</a>, this system has performed admirably and despite the humble specs can play anything I have thrown at it. As an interface I used the <a href="http://wiki.awn-project.org/">Avant Window Navigator</a> (think OSX dock) to simplify the GUI and help me get around the overscan that is unavoidable on my HDTV. This still left me using a wireless mouse and Apple wireless keyboard to manage and play my media.<br /><br />I explored using my PS3 as a media center and using my HTPC as a DLNA server; but the PS3's codec support is abysmal, especially when trying to stream content to it. Giving up on that option, I found some info about <a href="http://www.mythbuntu.org/">Mythbuntu</a> and decided to try it out with my existing setup.<br /><br />Mythbuntu is based on the <a href="http://www.xubuntu.org/">Xubuntu</a>, but all the superfluous parts (OpenOffice, GIMP, etc) have been removed and <a href="http://www.mythtv.org//">MythTV</a> added; a customized installer and configuration editor round out the experience. The big advantage of Mythbuntu is that it handles a lot of the backend configuration on its own and provides a solid base for your HTPC experience.<br /><br />After installing Mythbuntu I set about achieving the following objectives:<br /><ol><li>enable SPDIF sound output</li><li>connect to Apple wireless keyboard</li><li>correct overscan issues</li><li>configure remote control interface to work with Logitech Harmony 520<br /></li></ol><span style="font-weight: bold;">SPDIF</span><br />I wanted to use SPDIF because it is digital and allows for multichannel audio. Xubuntu's built-in audio mixer, while providing the correct options for SPDIF operation, did not function properly. To resolve this I installed the <span style="font-style: italic;">gnome-media</span> package from the repository; this includes the Gnome audio mixer and sound recorder among other handy plug-ins. After installation I was able to use my SPDIF output by checking the IEC958 box and setting the IEC958 slider to 0 in the <span style="font-style: italic;">gnome-volume-control</span>.<br /><br /><span style="font-weight: bold;">Apple Wireless Keyboard</span><br />One of the downsides to Mythbuntu's minimalist installation is its lack of many common software utilities. In this case the absence of any bluetooth related applications prevented me from following <a href="http://www.highonsolder.org/2007/11/apple-wireless-keyboard-setup-ubuntu.html">my own tutorial</a> for syncing my keyboard to my HTPC. In order to get around this I installed <a href="http://blueman.tuxfamily.org/">Blueman</a>. It is a very solid bluetooth manager and I successfully connected my keyboard without issue.<br /><br /><span style="font-weight: bold;">Overscan</span><br />Probably everyone who has ever connected their computer to a television has had to deal with <a href="http://en.wikipedia.org/wiki/Overscan">overscan</a>. This annoying feature that cuts off the outside edges of the screen can be turned off on some HDTVs. Unfortunately mine does not offer this feature and so I have had to find other ways of getting around this.<br /><br />The first fix involves setting screen margins in the <span style="font-style: italic;">Workspaces and Margins</span> utility. This restricts window sizes so that full screened windows do not extend out of view. I set my left and right margins to 32 pixels and my top and bottom margins to 16 pixels.<br /><br />The second and more important fix sets similar margins within the MythTV application itself. Inside the Utilities/Setup-Setup-Appearance menu there is are options for GUI width &amp; height sizes as well as GUI X &amp; Y offsets. I used the following settings to compensate for my HDTV's overscan:<br /><ul><li>GUI width = 1220px</li><li>GUI height = 690px</li><li>GUI X offset = 30px</li><li>GUI Y offset = 15px</li></ul><span style="font-weight: bold;">Remote Control</span><br />According to the Mythbuntu website regarding recommended remote controls, "I recommend the Windows Media Center (MCEUSB2) remote. It is a great remote and if you don't have one, then get one." Based on this I determined that a WMC remote was the way to go. Browsing around <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16880121002">Newegg</a> I found one that looked promising with multiple customer reviews stating its compatibility with MythTV. Using the <span style="font-style: italic;">Mythbuntu Control Center</span> I checked the<span style="font-style: italic;"><span style="font-style: italic;"><span style="font-style: italic;"> Enable a Remote Control</span></span></span> box and selected the<span style="font-style: italic;"> Windows Media Center remotes (new version) </span><span>option from the drop-down box</span>.<br /><br />Once I had the Anyware GP-IR02BK remote working I set about configuring my Logitech Harmony 520 to match. In the Harmony software I performed the following, Add Device-Computer-Media Center PC-Anyware GP-IR02BK. Then I added this device to my existing HTPC activity (which sets my HDTV &amp; Receiver to the correct inputs) and customized the buttons to match the Anyware remote as much as possible. The only issue I ran into was that the Back button does not work, however the Stop button performs the same functionality so I just modified my Harmony configuration. Now I can control my whole setup with one remote.<br /><br /><span style="font-weight: bold;">Review</span><br />Thus far I have been very impressed with Mythbuntu's capabilities as a media center. The installer is well designed and does its job quickly. The interface is snappy and very usable. The Video &amp; Music Players are decent, but I wish the browser tree was a little more customizable. My only major criticism is that the file browser does not automatically update when files are moved, deleted, or added. Overall Mythbuntu is a vast improvement over my previous setup and I am pleased with my decision to switch.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-15443365711974130622008-06-24T09:41:00.005-05:002008-06-24T10:36:23.126-05:00OpenSUSE 11.0 Impressions<a href="http://www.opensuse.org/">OpenSUSE</a> 11.0 was released last week and I have been trying it out on my Dell XPS m1330 using the Gnome & KDE LiveCDs as well as installing it on my Athlon64 based desktop. As far as features go I really like openSUSE. The DVD installer is particularly good, allowing the user to pick exactly which packages they wish to install. This is something I wish <a href="http://www.ubuntu.com">Ubuntu</a> did as well. I also liked openSUSE's implementation of Compiz-Fusion desktop effects. Instead of relying solely on the comprehensive but confusing <span style="font-style:italic;">Advanced Compiz Configuration</span> application like Ubuntu, openSUSE has another much simpler <span style="font-style:italic;">Desktop Effects</span> application that provides simple check boxes and drop down menus to configure the most commonly used options.<br /><br />Aside from these high points I was fairly disappointed with openSUSE. The navigation menus in both Gnome & KDE are overly cluttered, confusing, and often redundant. Why have a menu item for Internet with a sub-menu labeled Web Browser that only contains one entry for Firefox? If the distribution had multiple browsers installed I could understand their reasoning; but why not leave this sort of configuration to the user as Ubuntu does? The KDE interface is especially clunky, to the point of being almost unusable. I have never been a fan of KDE and I realize that KDE 4 is far from finished but nothing I have seen has come close to swaying my view that Gnome is still the best GUI for Linux. Similar to my views on Gnome vs KDE, my opinion of non Debian based distributions of Linux has also not changed. The combined benefits of broad support and flexibility are unsurpassed as evidenced in the absence of very common software packages from the openSUSE repositories. OpenSUSE also did not resolve any of the issues I had with Ubuntu 8.04, namely the CPU scaling issue. While the suspend-resume worked fine, the second CPU core still runs at full speed when the system is resumed. <br /><br />While openSUSE 11.0 is certainly not a bad distribution of Linux, it just isn't for me. The quality and level of detail afforded by the installer make this a better choice for a more customized application, such as a server, than for a desktop. The DVD installer includes whole sections of server software for just such a task. The hardware support was very good and was at least comparable to Ubuntu 8.04.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-46937942756964908862008-06-21T13:48:00.005-05:002008-06-21T14:18:26.567-05:00Rockbox Video PlaybackI have been running the <a href="http://www.rockbox.org">Rockbox</a> firmware on my Sansa e280 for almost a year now and I like it a lot. Recently I was finally able to get the video playback feature to work and the following is a brief summary of how I accomplished this.<br /><br />The <a href="http://www.rockbox.org/twiki/bin/view/Main/PluginMpegplayer">Rockbox MPEG Player Plugin</a> page describes how to use the cross platform program <a href="http://www.winff.org/">WinFF</a> to encode files not only for the Sansa but also some of the other players that Rockbox supports. It warns, however, that depending on your Linux distribution the version of FFMPEG installed may not support MP3 audio and that you have to compile your own version that does support MP3 in order for WinFF to function properly. This can be an enormous pain to do. Luckily there is a much easier way to get around this. The <a href="http://wiki.kartbuilding.net/index.php/Ffmpeg#Install_ffmpeg_with_MP3_support">FFMPEG Wiki</a> has a repository listing for an alternate version of FFMPEG with MP3 support already built-in. <br /><br />After adding this listing to my APT repository I installed FFMPEG and WinFF and have been successfully converting files to play on my Sansa ever since. WinFF is a nice little program. It has preset encoding settings for use with Rockbox and the Sansa (presets are also included for other players) as well as support for batch conversions, so you can tell it to convert several videos and come back later when they're done.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-41797676605821671402008-05-19T17:42:00.014-05:002008-07-30T18:41:18.523-05:00Dell XPS M1330n w/ Ubuntu 8.04 Review<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_-X1BfLDTfrk/SDIEiDatWVI/AAAAAAAABOg/zkGfepVAI9I/s1600-h/img_1183.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_-X1BfLDTfrk/SDIEiDatWVI/AAAAAAAABOg/zkGfepVAI9I/s200/img_1183.jpg" alt="" id="BLOGGER_PHOTO_ID_5202225502645737810" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_-X1BfLDTfrk/SDIEijatWWI/AAAAAAAABOo/pEHcowaejM4/s1600-h/img_1184.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_-X1BfLDTfrk/SDIEijatWWI/AAAAAAAABOo/pEHcowaejM4/s200/img_1184.jpg" alt="" id="BLOGGER_PHOTO_ID_5202225511235672418" border="0" /></a><br />Ever since Dell started selling systems with Ubuntu, I considered buying one as a show of support for the pre-installed Linux market. I have been playing with Ubuntu since version 5.04 (Hoary) and have used it regularly since version 6.06 (Dapper). For the past 6 months I had been running 7.10 (Gutsy) primarily on my Lenovo Thinkpad T61, but I decided I wanted a smaller, lighter, and more portable workstation. Consequently last week I purchased a Dell XPS M1330. <p></p> <p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;">The specs are as follows: </span> </p> <ul><li><span style="font-family:Arial,sans-serif;">2GHz Core 2 Duo</span></li><li><span style="font-family:Arial,sans-serif;">2GB RAM</span></li><li><span style="font-family:Arial,sans-serif;">160GB hard drive</span></li><li><span style="font-family:Arial,sans-serif;">nVidia 8400m GS graphics w/ 128MB onboard memory</span></li><li><span style="font-family:Arial,sans-serif;">DVD burner</span></li><li><span style="font-family:Arial,sans-serif;">10/100 NIC</span></li><li><span style="font-family:Arial,sans-serif;">Intel 3945 ABG wireless</span></li><li><span style="font-family:Arial,sans-serif;">Bluetooth</span></li><li><span style="font-family:Arial,sans-serif;">Firewire</span></li><li><span style="font-family:Arial,sans-serif;">SD card reader</span></li><li><span style="font-family:Arial,sans-serif;">2x USB</span></li><li><span style="font-family:Arial,sans-serif;">HDMI &amp; VGA video out</span></li><li><span style="font-family:Arial,sans-serif;">VGA Webcam</span></li><li><span style="font-family:Arial,sans-serif;">13.3” screen with LED backlight</span></li><li><span style="font-family:Arial,sans-serif;">4.5 lbs (with the 6-cell battery)</span></li></ul> As shown in the picture, the system comes with a slip case, manual in binder, Ubuntu 7.10 CD, Webcam application CD (for Windows), and a small 65W AC adapter.<br /><p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;">Although I ordered my new laptop with Ubuntu 7.10 installed, I wanted a dual-boot setup with Windows XP for gaming and Ubuntu 8.04 (Hardy) for everything else. Consequently I removed all of the partitions that Dell had setup on the machine, which include a recovery partition which can be used to reinstall the system (you can also download Dell's custom Ubuntu DVD image). I setup my new partitions as follows: 40GB NTFS (XP), 25 GB ext3 (/), 80GB ext3 (/home), 4GB (swap). As you can see I setup my system with a separate /home partition which is very handy for reinstalling your OS without losing any of your data or settings.</span></p> <p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;">The following is a list of what works out of the box after installing Ubuntu 8.04:</span></p> <ul><li><span style="font-family:Arial,sans-serif;"><b>Wifi</b> (I connected to my router using WPA encryption without issue)</span></li><li><span style="font-family:Arial,sans-serif;"><b>Bluetooth</b> (I successfully connected to my cell phone but have not really played with this too much)</span></li><li><span style="font-family:Arial,sans-serif;"><b>Suspend/Hibernate – Resume</b><br /></span></li><li><span style="font-family:Arial,sans-serif;"><b>Webcam &amp; Built-in Microphone</b> (installed <i>Cheese</i> and I can take pictures and video with the webcam, make sure you set your <i>Digital Input Source</i> in the Alsa Mixer to <i>Digital Mic</i> in order for the webcam's built-in microphone to work)</span></li><li><span style="font-family:Arial,sans-serif;"><b>Headphone Jacks, Speakers, &amp; Microphone Jack</b> <span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">(in order for the 2</span><sup><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">nd</span></sup><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> Headphone Jack to work you need to enable the </span><i><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Surround</span></i><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> output in the Alsa Mixer and Unmute it, to use the Microphone Jack set the <span style="font-style: italic;">Digital Input Source</span> to <span style="font-style: italic;">Analog Inputs</span>, set <span style="font-style: italic;">Input Source</span> to <span style="font-style: italic;">Front Mic </span>and make sure you check the </span><i><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Capture</span></i><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> recording levels in the Alsa Mixer)</span></span></li><li><span style="font-family:Arial,sans-serif;"><b>SD Card Reader </b>(works with SD and SDHC cards)</span></li><li><span style="font-family:Arial,sans-serif;"><b>USB ports</b></span></li><li><span style="font-family:Arial,sans-serif;"><b>DVD Burner</b></span></li><li><span style="font-family:Arial,sans-serif;"><b>10/100 NIC</b></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><b>Firewire</b> (mounted external hard drive without issue)</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><b>HDMI and VGA video outputs</b> (works perfectly using the <i>nVidia Settings</i> application which can be installed with Apt)</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><b>Media Control Buttons</b> (volume &amp; eject buttons work well, but the play/pause, stop, next, and previous buttons only work with certain applications)</span></span></li></ul> <p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">The following is a list of of tweaks and fixes that I made to get my system working as close to perfect as I could:</span></span></p> <ul><li><a href="http://ubuntuforums.org/showpost.php?p=5031046&amp;postcount=3">Hard Drive Load Cycle Bug fix</a> (without this I experienced some rather disturbing clicks every so often due to the hard drive parking its read heads too often, which can shorten the life of the hard drive)<br /></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Add <a href="http://linux.dell.com/wiki/index.php/Ubuntu_8.04/Issues/Update_Dell_PPA_Entry">Dell's Personal Package Archive</a> into Apt </span></span> </li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://blueman.tuxfamily.org/">Blueman</a> bluetooth manager (adds functionality not present in the built-in bluetooth application)</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/176090">Wifi activity LED fix</a> (without this the Wifi LED does not turn on regardless of Wifi state)</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://ubuntuforums.org/showthread.php?t=597998">CPU Scaling</a> (set your CPU to run lower speeds while idle and on battery power)</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://computertemp.berlios.de/index.php">Temperature Monitor</a> (keep track of your CPU's temperature)</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://ubuntuforums.org/showthread.php?p=2727025">Configure Logitech Mouse</a> (enable all those special buttons' custom abilities)</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Firefox 3 custom bookmark icons (this was necessary because firefox's bookmark icons do not match the applied icon theme and instead default to the horrible root icon set, to remedy this create a custom <a href="http://filer.cwru.edu/jec24/highonsolder/userChrome.css"> userChrome.css</a> file in your home directory's /.mozilla/firefox/~.default/chrome folder)</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Configure the Home button using the System-Preferences-Keyboard Shortcuts application<br /></span></span></li></ul> <p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Problems I have yet to find solutions for:<br /></span></span></p><ul><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">After Resume from Suspend the 2nd CPU core goes into performance mode, staying constantly at the maximum clock speed <span style="font-style: italic;">(Update - 6/28/08 - this appears to have been fixed in one of the recent kernel updates)</span><br /></span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Screen Brightness adjustment is not very sensitive, one button press (Fn+Down) takes the screen from full to half brightness</span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">There doesn't seem to be a way to turn off the Bluetooth radio other than the wireless switch (which also turns off the Wifi) except in the bios</span></span></li></ul> <p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">Additional helpful websites:</span></span></p> <ul><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="https://wiki.ubuntu.com/LaptopTestingTeam/DellXPSM1330">Ubuntu Dell XPS 1330 Wiki</a></span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://linux.dell.com/wiki/index.php/Products/Client">Dell Linux Wiki</a></span></span></li><li><span style="font-family:Arial,sans-serif;"><span style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><a href="http://adventuresinopensource.blogspot.com/2008/03/laptop-review-dell-xps-m1330n-ubuntu.html">Another Dell XPS M1330 Review</a></span></span></li></ul> <p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;">Overall I have been very pleased with this system. It has a fantastic form factor which is light and thin. The keyboard is very good and in many ways I actually prefer it to the Thinkpad's. The LED backlit screen is very sharp and has considerably better contrast, brightness and viewing angles than the Thinkpad's. The glare due to the reflective coating is also minimal. I do wish that the touchpad were larger (a gripe I shared with the Thinkpad) but it works fine in general, a</span><a href="javascript:void(0)" tabindex="10" onclick="return false;"><span></span></a><span style="font-family:Arial,sans-serif;">nd I use a wireless mouse primarily anyway. I am most pleased that this machine runs cooler than the Thinkpad and with considerably better battery life, most likely due to the much smaller screen and more efficient backlight. So far I have been able to get around 4 hours of use with the wireless off and the screen set to half brightness and over 3 hours of general use with the wireless on. </span> </p>Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-80095629373648371992008-05-04T14:40:00.004-05:002008-05-04T15:18:35.124-05:00GPS Receiver (minor revision)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_-X1BfLDTfrk/SB4aCVLp7II/AAAAAAAABNg/AN4eECMXzsQ/s1600-h/gps2.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_-X1BfLDTfrk/SB4aCVLp7II/AAAAAAAABNg/AN4eECMXzsQ/s200/gps2.jpg" alt="" id="BLOGGER_PHOTO_ID_5196619647380221058" border="0" /></a><br /><br />In my <a href="http://www.highonsolder.org/2008/04/gps-receiver-revision-ideas.html">previous post</a> I brought up several ideas regarding how I wanted to upgrade my GPS receiver. After further investigation, most of my ideas are not practical for a variety of reasons. The PIC microcontroller I was planning on using does not support the math functions I would need to calculate directions and distances between waypoints. Even the saving of waypoints became far too complicated when I attempted to code it (due primarily to the way the GPS passes information). This was made even more difficult because the larger LCD I was planning on using would have required a much larger case than I wanted to use and thus was eliminated as well.<br /><br />Long story short, the only change made to my GPS was its external appearance. This was accomplished by getting a new frontpanel and replacing the two slide switches with push-on-off switches, as you can see in the photo. The left button is for power and the right turns the LCD's backlight on and off. Since the backlight toggle is performed via a digital input on the PIC I had to modify the circuit slightly by adding a 1M ohm pull-down resistor to the digital input which the pushbutton wires to. This is required because in the previous version the single pole double throw slide switch would either connect the digital input to +5V or ground; since the circuit now uses a single pole single throw pushbutton it cannot perform this same functionality. Therefore, the pull-down resistor grounds the digital input when the switch is not on and then when the switch is turned on its resistance is so high that it is effectively an insulator to ground in comparison to the straight +5V from the power supply circuit.<br /><br />As I mentioned previously I could most likely completely rebuild this project using the much more powerful Arduino and a larger LCD to accomplish my design goals. However, such an undertaking's cost would approach that of a commercially available GPS unit with considerably more functionality.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-35386637515933308562008-04-28T18:02:00.004-05:002008-04-28T18:59:19.732-05:00GPS Receiver Revision IdeasIn the seven months that I have been using my <a href="http://www.highonsolder.org/2007/09/gps-receiver-part-2.html">GPS Receiver</a> I have been thinking about a lot of improvements I could make that could greatly improve the usability and power of the unit. The following is my wish list of improvements.<br /><ol><li><span style="font-weight: bold;font-size:100%;" >Rechargeable battery</span> - while running off of a standard 9V has its advantages; having a battery with more capacity, lighter weight, and smaller size(assuming I would use a Lithium-Polymer battery) would be very handy<br /></li><li><span style="font-weight: bold;font-size:100%;" >Ability to save GPS Waypoints</span> - I had thought about this from the beginning of the project but was somewhat lazy and didn't look into it too much; now that I have used the unit for a few months I realize that adding this capability is a must</li><li><span style="font-weight: bold;font-size:100%;" >Distance &amp; Direction calculations between GPS Waypoints</span> - this idea came about from doing the calculations by hand on a calculator which isnt' difficult but still a pain</li><li><span style="font-weight: bold;font-size:100%;" >User Interface Upgrades</span> - this aspect of the revision directly follows the ideas listed above, especially upgrading the display and adding a rudimentary menu structure to allow the saving of waypoints and performing calculations; I also want to change the backlight switch from a slide switch to a press and hold momentary pushbutton </li></ol>Since I first developed this wish list I have done some analysis into what I would have to do to realize these upgrades. I considered the possibility of completely rebuilding the unit based around the <a href="http://www.arduino.cc/">Arduino</a>, especially since I could upgrade the software via the USB port at any time. The arduino, however is somewhat overkill for this application (16K Flash &amp; 512 bytes EEPROM) and is also a rather large board to fit into a small handheld device with an LCD and GPS receiver. The arduino does come in another form factor called the <a href="http://www.arduino.cc/en/Main/ArduinoBoardMini">Arduino Mini</a>. While this is much smaller, at $37 for the unit itself and another $20 for the <a href="http://www.arduino.cc/en/Main/MiniUSB">USB adapter</a>, it is a larger financial investment than I am willing to make for an upgrade of a device such as this (considering I already spent $100 on the current unit).<br /><br />The rechargable battery has also turned out to be somewhat unfeasible. I did find a small <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=726">LiPoly battery charger board</a> for $17 and a <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=339">1100mAh LiPoly battery</a> for $12 at Sparkfun. This isn't too much money, especially since a rechargeable battery pays for itself over time, but since the charger only works with single cell batteries (which only put out 3.7V) it is not compatible with a 5V system such as this and using multiple cells could get complicated.<br /><br />After further research I realized that the PIC16F84A that I based the current unit off of contains 64 bytes of EEPROM which could be used to save waypoints. I recalled, however, that my current GPS program is running toward the limits of the PIC's 1024 word Flash memory. The solution to this problem comes from the fact that the PIC16F84A has been replaced by the PIC16F628A. The 16F628A is a pin-for-pin equivalent to the 16F84A so I can reuse my existing circuit board and simply program the new chip and drop it into the existing socket. The 16F628A has the added benefit of 2048 words of Flash and 128 bytes of EEPROM. This should allow the 16F628A to have enough program memory to implement my UI changes and the calculation options I would like to add as well as store up to 32 waypoints (4 bytes per waypoint). The best part is that I have a couple of these lying around so it costs me nothing. The only items I will have to purchase will be a <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=462">larger LCD</a>, a new case and a couple of switches.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-88278897845884222592008-03-25T20:11:00.005-05:002008-03-26T16:21:48.307-05:00Panel Meter Clock (Part 2)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/panel-meter-clock-758892.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/panel-meter-clock-758886.jpg" alt="" border="0" /></a><br />In order to make the panel meter faceplates read time instead of current I had to make a new set of scales for the three gauges. I started with the templates available on The Chronulator website (I particularly liked the VU meter as you can see in the photo). Since these are vector graphics images you can easily resize them without losing detail like you would in a bitmap image. I used a free conversion tool called <a href="http://freesvg.texterity.com:90/">FreeSVG</a> to convert the files from PDF to SVG (Scalable Vector Graphics) format which can be read by the free, open source vector graphics editor <a href="http://www.inkscape.org/">Inkscape</a>. Note: I believe that the new version of Inkscape will include the ability to open PDFs.<br /><br />I used Inkscape to resize the faceplates to match the dimensions of the panel meters I had purchased (which were larger than the template). <span>I also inverted the color scheme of the template since text on a white background is more visible than with a black background. I printed the new faceplates out on 4"x6" glossy photo paper (which really shows off the colors of the scale better than regular paper). After cutting out the new gauges with a razor blade, I then used rubber cement to glue each of the completed faceplates onto the original aluminum gauges. I allowed the</span><span> finished gauges</span><span> to dry overnight and they went on without issue.<br /><br />This is an excellent project to get your feet wet with the Arduino, and it looks great too.<br /></span>Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-47948926206420523402008-03-24T17:38:00.004-05:002008-04-08T13:50:27.968-05:00Freeduino (Arduino Clone Kit)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/comparison-727072.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/comparison-726936.jpg" alt="" border="0" /></a><br />The <a href="http://www.nkcelectronics.com/freeduino-arduino-diecimila-compatible-board-complete-kit.html">Freeduino</a> is a great kit for those interested in the <a href="http://www.arduino.cc/">Arduino</a> platform. It is essentially identical to the <a href="http://www.arduino.cc/en/Main/ArduinoBoardDiecimila">Arduino Diecimila</a>, but made with through-hole components to allow for easy assembly as a kit. I assembled mine in about 30 minutes. Unlike my <a href="http://www.highonsolder.org/2008/03/arduino-part-1.html">homebrew Arduino</a>, the Freeduino shares the Arduino's form factor and therefore is interchangeable with the pre-assembled board (including compatibility with the <a href="http://www.adafruit.com/index.php?main_page=index&amp;cPath=17_21&amp;zenid=89cbee8cf1a5332786307546d8201cee">various shield kits</a> that are available for the Arduino). Another benefit of the Freeduino is that, due to its onboard female headers, it allows for prototyping without the use of a solderless breadboard.<br /><br />Pictured above is a side-by-side comparison of the finished Freeduino kit (on the left) and my scratch built Arduino.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-13482482415802954662008-03-12T17:06:00.013-05:002008-06-16T14:26:30.427-05:00Panel Meter Clock (Part 1)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/board-778434.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/board-778387.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/wiring-778744.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/wiring-778731.jpg" alt="" border="0" /></a><br />There are several versions of this project, including one which can be purchased as a kit (<a href="http://www.sharebrained.com/chronulator/">The Chronulator</a>). In this case I based it off of the one featured in Issue 13 of <a href="http://makezine.com/magazine/">Make Magazine</a> (<a href="http://makezine.com/13/diycircuits_clock/">original code and schematics</a>). I liked this iteration as opposed to The Chronulator because not only can I easily build it from scratch using an Arduino board, it also has a seconds display<br /><br />In order for panel meters to tell time the Arduino pulses three of its outputs according to what the clock demands. For example, if it is 6:45 the Arduino will pulse the hour meter output 50% of the time and the minutes meter output 75% of the time. The pulses occur so fast that the meters can't react in time, consequently it appears as if they are receiving a constant supply of current. Since the Arduino's outputs are 5VDC and the meters were chosen to read 1mA maximum, then a resistance of 5000 Ohms is necessary between the outputs and the meters. 5000 Ohms is not a standard resistor size so I used some parts I had lying around in my junk box, in this case 4700 Ohm resistors and 1000 Ohm potentiometers. The potentiometers allow you to adjust the total resistance of the circuit enabling you to set the peak value of the meter to the correct reading (1mA).<span></span><span style="font-weight: bold;"><br /><br /></span>To finish the project I took an 8"x6"x3" plastic enclosure from Radioshack and cut holes in the lid to mount the meters. I also placed the mode, hour set, and minute set buttons on the top of the enclosure. To finish it off I added a power connector for a 9V power brick which will be the power supply for the clock (in the lower left corner of the circuit board you can see the power circuit consisting of a protection diode, a 5V regulator and 2 capacitors which together supply 5V to the Arduino from the incoming 9V supply).<span style="font-weight: bold;"><br /></span><span style="font-size:100%;"><br /><span style="font-size:100%;">Total cost was about $60 for my scratch built Arduino, 3 panel meters, pushbuttons and enclosure.</span></span><br /><ul><li><a href="http://www.arduino.cc/">Arduino</a></li><li><a href="http://www.allelectronics.com/cgi-bin/item/PMD-1MA/385/1_MA_DC_PANEL_METER_.html">1mA Panel Meter</a></li></ul><span style="font-size:180%;">Update (3/27/08)</span><br /><span style="font-size:100%;">I discovered that the hour scale did not behave properly (it took longer than an hour to move the gauge 1 hour). I checked the code and found that the hour code was set to run on a 24 hour scale, while my hour gauge has a 12 hour scale. After editing the code to account for this difference (and adding some comments), the clock now runs properly.<br /></span><ul><li><a href="http://filer.case.edu/jec24/highonsolder/clock.pde">Arduino Clock Code</a><br /></li></ul>Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-25642496738429523952008-03-10T13:51:00.008-05:002008-04-08T13:59:22.556-05:00Arduino (Part 2)Having never dealt with the Arduino's software package before, I wasn't sure what to expect. It is a simplistic Java application which provides a very user friendly environment to write your programs (or <span style="font-style: italic;">sketches</span> as they are called) in. The programming syntax used is similar to C, but the environment has many useful functions already built in so it's very easy to do simple tasks such as set a pin as an output or toggle an output on &amp; off. As someone who has used other languages, PICBasic for example, I can attest to how intuitive these functions are when compared to manually setting register ports in BASIC. Like in C you can also create your own functions and call them, making this a very powerful language despite its simplicity.<br /><br />The installation of the Arduino software is fairly straightforward, even on Linux, and I encountered no issues. In Ubuntu it entails downloading the application from the <a href="http://www.arduino.cc/en/Main/Software">Arduino Software page</a> and following their <a href="http://www.arduino.cc/playground/Linux/Ubuntu">well written instructions</a>. These mainly involve installing Java and removing a package which inadvertently thinks the Arduino is a braille reading device and grabs your computer's USB port. Left out of the instructions is an issue which caused me some problems; the Arduino software should be run with root privileges in order to gain access to the USB port and consequently the Arduino board. This is done by opening the terminal and executing the following commands:<span style="font-weight: bold;"><br /><br />cd /home/username/Arduino-0010</span> (navigates to the Arduino software's folder)<span style="font-weight: bold;"><br />sudo ./arduino</span> (runs the Arduino software script with root permissions)<br /><br />The application will now launch. Once running I selected my board under <span style="font-weight: bold;">Tools - Board - Arduino Diecimila</span> (currently the newest board design and bootloader) and picked my USB port under <span style="font-weight: bold;">Tools - Serial Port - /dev/ttyUSB0</span>. Since I built my Arduino from scratch, my ATMega168 did not come pre-burned with the Arduino Diecimila bootloader. The bootloader functions as a sort of operating system for the microcontroller, allowing you to transfer files over a serial port instead of having to re-burn the entire firmware every time you change your program, thus simplifying the entire process. In order to burn the bootloader I plugged my <a href="http://www.highonsolder.org/2007/09/avr-programmer.html">AVR programmer</a> into the 6 pin ISP header on the board and selected <span style="font-weight: bold;">Tools - Burn Bootloader - w/ USBtinyISP</span>. The software displays its progress on the bottom of the screen and lets you know when it has finished burning the file to the chip. To check if the bootloader is running properly <a href="http://moderndevice.com/bootloader.shtml">follow this guide</a> (since the various bootloaders behave differently). Next I wrote a simple LED flasher sketch and after plugging in the FTDI cable I successfully uploaded the sketch to the board and it ran perfectly.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-5130825092970480862008-03-08T18:10:00.006-05:002008-03-22T16:57:35.928-05:00Arduino (Part 1)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/protoboard-702561.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/protoboard-702539.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/board-views-703318.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/board-views-702631.jpg" alt="" border="0" /></a><br />If you have been following this blog at all you probably noticed that I have done a fair number of microcontroller projects. In my experience working with the PIC and AVR microcontrollers I ran into a number of issues:<br /><ol><li>The PICBasic programming environment , while easy to learn, only works on Windows</li><li>The C programming environment for the AVR requires more effort than I wish to put into a casual hobby enterprise and I have been unable to get it working in Linux<br /></li></ol>As I looked for more project ideas I noticed a lot of people using the <a href="http://www.arduino.cc/">Arduino</a> development board. The Arduino is an open source hardware and software environment similar in concept to the BASIC Stamp (except it's not expensive). Basically all the Arduino does is provide a standardized microcontroller board using the AVR ATMega168 processor and various power, I/O, and programming connections. They can be purchased as a completed board for around $35 (several versions of unassembled kits are also available). The biggest advantage from my perspective is that the <a href="http://www.arduino.cc/en/Main/Software">Arduino software</a> is truly cross-platform since it runs in Java and therefore can be used in Windows, Mac OSX and most importantly for me Linux.<br /><br />One version called the <a href="http://moderndevice.com/index.shtml">Bare Bones Arduino</a> removes the standard USB-serial adapter from the board itself and instead substitutes a <a href="http://www.ftdichip.com/Products/EvaluationKits/TTL-232R.htm">FTDI USB-serial cable</a> to connect the board to your PC. This is done to minimize cost since the adapter cable is a one-time $20 dollar purchase that can be used with an infinite number of compatible boards instead of paying for the adapter chip on the standard Arduino every time you get a new board. Another version of the Arduino called the <a href="http://ladyada.net/make/boarduino/index.html">Boarduino</a> modifies the form factor of the circuit board into one more convenient for use on a solderless breadboard. otherwise it is essentially the same as the Bare Bones Arduino in that it also uses the FTDI adapter cable. Both of these boards are completely interchangeable with the Arduino.<br /><br />While these are good products, I decided I wanted to build my own version from scratch to better fit my electronics setup. I used the <a href="http://ladyada.net/images/boarduino/boarduinosch.png">schematic</a> from the Boarduino website to base my design on, but I used the same form factor as the Bare Bones Arduino. Since I use a <a href="http://www.graymarkint.com/newweb/newweb/Electronic%20Projects_page17.htm">Graymark 808 Protoboard</a> which has a built in power supplies I removed the power circuitry from my design. In its place I simply put two headers, one for +5V and one for Gnd that connect to the protoboard's power supply (as shown in the pictures above). I also reduced the number of headers (which stab into the solderless breadboard) used to fit the Radio Shack PC board I used for my layout. I retained the power select jumper to choose whether the board is powered by the USB programming cable or the protoboard's power supply. I also left the two indication LEDs, reset button, and the 6 pin ISP and USB programming headers as they are on the Boarduino.<br /><br />Total cost for my homebrew Arduino was $9 (not including the USB adapter cable).<br /><ul><li><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=TTL-232Rvirtualkey62620000virtualkey626-DLP-TTL232R">FTDI USB to TTL Serial Adapter Cable, 5V version</a></li><li><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=ATMEGA168-20PUvirtualkey55650000virtualkey556-ATMEGA168-20PU">Atmel ATMega168 microcontroller</a></li><li><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=ZTT-16.00MXvirtualkey59070000virtualkey520-ZTT1600MX">16MHz ceramic resonator</a></li><li><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=B3F-1000virtualkey65300000virtualkey653-B3F-1000">Tactile Pushbutton</a></li><li><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=2340-6211TGvirtualkey51750000virtualkey517-6211TG">40 Pin Strip Header</a></li><li><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=929951-00virtualkey51750000virtualkey517-951-00">Strip Header Shunt</a></li><li><a href="http://www.radioshack.com/product/index.jsp?productId=2102845&amp;cp=2032058.2032230.2032265&amp;parentPage=family">Radio Shack Multi Purpose PC Board, 417 holes</a><br /></li></ul>Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-23164769281292058412008-02-10T15:31:00.002-05:002008-06-16T14:27:24.577-05:00Aqua Teen Hunger Force Animated LED Art<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/Finger-756963.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/Finger-756958.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/Ignignokt-796808.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/Ignignokt-796751.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/Ignignokt2-796963.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/Ignignokt2-796939.jpg" alt="" border="0" /></a><br />On January 31, 2007 <a href="http://blog.makezine.com/archive/2007/01/aqua_teen_hunge_1.html">Boston was shutdown</a> when pieces of LED artwork that looked like characters from the Cartoon Network show <span style="font-style: italic;">Aqua Teen Hunger Force</span> were mistaken for bombs. Ever since this occurred I have wanted to build my own version to hang up in my apartment.<br /><br />My version is designed to look like the character Ignignokt; in case you don't watch the show Ignignokt and Err (his sidekick) are Mooninites (residents of the moon, designed to look like characters from an 8 bit video game) who occasionally come down to Earth to annoy the Aqua Teens. I chose Ignignokt because he is green and blue (Err is purple and blue) and green LEDs are cheaper than purple LEDs. My design used 72 green and 40 blue LEDs.<br /><br />I got my LEDs from <a href="http://www.mouser.com/">Mouser</a> and I chose them based primarily on their diffusion angle (over 40 degrees), which allows for better viewing angles than other LEDs. In order for an LED array like this to function properly the LEDs must be wired in parallel (ie. all of the cathodes are connected together as well as all of the anodes). I also had to subdivide the LEDs into a group of all of the green LEDs (D6 on the schematic) and all of the blue LEDs (D5 on the schematic). This had to be done because the LEDs were different types and there were more greens than blues, causing the current draw of the groups to be unbalanced. This created a problem where only the green group would light, consequently, I adjusted the resistor values such that I balanced the current drawn by both LED groups. There are also four additional groups to create the effect of Ignignokt giving the finger. These groups are controlled by a PIC16F84A microcontroller which orchestrates the animation of the LEDs. As shown in the schematic, group D1 is the hand and groups D2-D4 are the finger. The code (written in PicBasic) is very simple, involving only turning on specific digital outputs of the PIC for set periods of time. I can power the whole thing off a 9 Volt battery using a power circuit similar to that shown in the <a href="http://filer.case.edu/jec24/uploaded_images/GPS-Schematic-759995.jpeg">schematic for my GPS project</a> (I substituted a 78L05 for the 7805 voltage regulator since this circuit draws less current). Check out the video to see Ignignokt in action.<br /><ul><li><a href="http://filer.case.edu/jec24/highonsolder/FINGER.BAS">PicBasic Code</a></li></ul>Parts:<br /><ul><li><a href="http://www.mouser.com/Search/Refine.aspx?Ntt=859-LTL-4236N">Green LEDs</a></li><li><a href="http://www.mouser.com/Search/Refine.aspx?Ntt=859-LTL353UBJ">Blue LEDs</a></li><li><a href="http://www.mouser.com/search/ProductDetail.aspx?R=PIC16F84A-04%2fPvirtualkey57940000virtualkey579-PIC16F84A-04%2fP">PIC16F84A</a></li></ul><br /><div style="text-align: center;"><object width="396" height="334" class="BLOG_video_class" id="BLOG_video-9c2f47aea9021829" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqgAAAOF-u9WtopylwZ9XHAqIS4S8hqmerxLxS8HmJKSyo9Wito8wTVHC7NE2DBO42q2v_mEFNNduiHmP3Wo08Ti23R_u9_qLKwNTGDbQVC5Q0kxy0TBEoa3_XMDhWE2d-PNaCan2Eh-qSKRxeBBopJut5zY89nsQC0I9XVdMmgAItcijSZFjCT-04MSKoA91PWCQgb4fTqumQbX_q98wFZHKqG7cHSvZFRV5JaYIgfrKbfLN%26sigh%3DclweKOeOlpNmNfRJFXyjADCog2w%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3D9c2f47aea9021829%26offsetms%3D5000%26itag%3Dw320%26sigh%3Dt-p1xmOtkyKe0nsym8Gyzc2tvxU&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den"> <param name="bgcolor" value="#FFFFFF"> <embed width="396" height="334" src="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqgAAAOF-u9WtopylwZ9XHAqIS4S8hqmerxLxS8HmJKSyo9Wito8wTVHC7NE2DBO42q2v_mEFNNduiHmP3Wo08Ti23R_u9_qLKwNTGDbQVC5Q0kxy0TBEoa3_XMDhWE2d-PNaCan2Eh-qSKRxeBBopJut5zY89nsQC0I9XVdMmgAItcijSZFjCT-04MSKoA91PWCQgb4fTqumQbX_q98wFZHKqG7cHSvZFRV5JaYIgfrKbfLN%26sigh%3DclweKOeOlpNmNfRJFXyjADCog2w%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3D9c2f47aea9021829%26offsetms%3D5000%26itag%3Dw320%26sigh%3Dt-p1xmOtkyKe0nsym8Gyzc2tvxU&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den" type="application/x-shockwave-flash"></embed></object> </div>Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-76791572477198316882008-02-10T15:16:00.001-05:002008-03-22T16:56:19.650-05:00Trippy RGB Light Redux<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/RGB-723997.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/RGB-723988.jpg" alt="" border="0" /></a><br />I decided to rebuild the Trippy RGB Light with a single RGB LED instead of three individual LEDs. I also changed from a 3 Volt supply to a 4.5 Volt supply. As a result I also had to change the resistor values (Blue - 150 Ohm, Red &amp; Green - 270 Ohm). The video shows a marked improvement over the previous version.<br /><object width="320" height="266" class="BLOG_video_class" id="BLOG_video-65475302060d7182" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqgAAAIiSxp13MRsP2RXZVN7myjL5WNXMTjtFFnLX-jxjuUQecXEX7DuSbShErXJCfe239aDbK1geUV99M8RJuB9jcWwQhXCWFhf1a-cVJ1two9hAn52y1MTMn0rbUshuV2lSB7IAxvPRaKRkYO0slkb-gxhrotLlrhUZ7GDzkMtNG3r62MAh7z8mkcHtMO8ASzpmYlggNvjEH6MHv4loTIiqgfn3Ha6JyFuncyW__iidXTqj%26sigh%3DB7-JtP1vp0o2pPw4L_fSWrQvRuw%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3D65475302060d7182%26offsetms%3D5000%26itag%3Dw320%26sigh%3D0uvsdRr-o_FsWT1Z7Mej_7pSDqE&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den"> <param name="bgcolor" value="#FFFFFF"> <embed width="320" height="266" src="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqgAAAIiSxp13MRsP2RXZVN7myjL5WNXMTjtFFnLX-jxjuUQecXEX7DuSbShErXJCfe239aDbK1geUV99M8RJuB9jcWwQhXCWFhf1a-cVJ1two9hAn52y1MTMn0rbUshuV2lSB7IAxvPRaKRkYO0slkb-gxhrotLlrhUZ7GDzkMtNG3r62MAh7z8mkcHtMO8ASzpmYlggNvjEH6MHv4loTIiqgfn3Ha6JyFuncyW__iidXTqj%26sigh%3DB7-JtP1vp0o2pPw4L_fSWrQvRuw%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3D65475302060d7182%26offsetms%3D5000%26itag%3Dw320%26sigh%3D0uvsdRr-o_FsWT1Z7Mej_7pSDqE&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den" type="application/x-shockwave-flash"></embed></object> Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-6530566837431933392008-01-26T15:50:00.002-05:002008-04-08T14:03:00.463-05:00Trippy RGB Light<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/RGB-closeup-729661.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/RGB-closeup-729653.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/RGB-729706.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/RGB-729696.jpg" alt="" border="0" /></a><br />This is another project that modifies the <a href="http://www.adafruit.com/index.php?main_page=product_info&amp;cPath=5&amp;products_id=20">MiniPOV kit</a>, similar to the<a href="http://www.highonsolder.org/2007/12/led-cube.html"> LED Cube</a> project I did previously. This time, instead of an LED matrix, one Red, one Green, and one Blue LED are used to create a multi-color light show by utilizing pulse-width modulation of the AVR's output. The construction is very similar to the LED Cube in that I also built the RGB from scratch. I did not, however, include an ISP header this time around because I felt the original program was adequate for a project of this scale. If I later decide to rebuild this project using multiple better quality LEDs I will definitely include an ISP header to be able to reprogram the RGB for other light shows.<br /><br />In order to program the RGB Light I had to modify the <span style="font-style: italic;">makefile</span> code for use with my USBTiny ISP in the same manner I did in the LED Cube project. This project is very simple to build and it produces an interesting light show. With some better quality LEDs with more diffuse viewing angles this could be even better. I will most likely rebuild this at some point in the future with more appropriate LEDs. Check out the video of my Trippy RGB Light in action (with a plastic bag between the RGB Light and the camera to diffuse the light for better color mixing).<br /><br />Links<br /><ul><li><a href="http://www.tvbgone.com/mfaire/rgb/rgb_schem.pdf">Trippy RGB Light Schematic</a></li><li><a href="http://www.tvbgone.com/mfaire/rgb/rgb.c">Trippy RGB Light Firmware (C code)</a></li><li><a href="http://www.tvbgone.com/mfaire/rgb/makefile">Trippy RGB Light <span style="font-style: italic;">makefile</span></a><br /></li></ul><object width="320" height="266" class="BLOG_video_class" id="BLOG_video-99d88d63b59c179b" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqgAAAOF-u9WtopylwZ9XHAqIS4RSTNJjnGXNvSI4ucy5DQcgFS4nOfbIUtcDYijJieFzMRCU7RZqkJWnZv0T2q_VtWA4-i3ZNuwoE_d-UZKGWvqqHrTz4oYsonEVv1UXs686A8QJjh5H3xZZ99xXVuzF1BtuGSTCLrcjPLPgIxLYR23PkOQEv9tRSbIMDm9pkACmyUbMQJBreLPGUY0fBm5HxMdZNl8NiEFIL8VCsB7yqLwO%26sigh%3DnVdogVGHDMhG5XvYc2Vj021xBaE%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3D99d88d63b59c179b%26offsetms%3D5000%26itag%3Dw320%26sigh%3DwThvV90XLYz8pqPcFEreDS88JO4&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den"> <param name="bgcolor" value="#FFFFFF"> <embed width="320" height="266" src="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqgAAAOF-u9WtopylwZ9XHAqIS4RSTNJjnGXNvSI4ucy5DQcgFS4nOfbIUtcDYijJieFzMRCU7RZqkJWnZv0T2q_VtWA4-i3ZNuwoE_d-UZKGWvqqHrTz4oYsonEVv1UXs686A8QJjh5H3xZZ99xXVuzF1BtuGSTCLrcjPLPgIxLYR23PkOQEv9tRSbIMDm9pkACmyUbMQJBreLPGUY0fBm5HxMdZNl8NiEFIL8VCsB7yqLwO%26sigh%3DnVdogVGHDMhG5XvYc2Vj021xBaE%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3D99d88d63b59c179b%26offsetms%3D5000%26itag%3Dw320%26sigh%3DwThvV90XLYz8pqPcFEreDS88JO4&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den" type="application/x-shockwave-flash"></embed></object> Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-51513976024675197102008-01-12T15:37:00.001-05:002008-03-22T16:55:21.082-05:00LED Camera Light<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/inside-783127.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/inside-783121.jpg" alt="" border="0" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/outside-728745.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/outside-728741.jpg" alt="" border="0" /></a><br />This is project is originally from <a href="http://prodmod.com/2007/12/15/make-your-own-led-camera-light-for-only-2-lasts-longer-than-camerabright/">ProdMod</a> and I built my version of one in about an hour. I had been looking for a way to put a camera light on my digital camera, especially for video, and this project fits the bill perfectly. All this camera light consists of is a modified 4-AAA battery case (with built-in switch) which has a 3/4" long 1/4" cap screw passing through it and 3 white LEDs wired to the batteries. To use it you simply thread the screw into the tripod mount on your camera and turn it on.<br /><br />I used a different parts source than the original article, getting both the white <a href="http://www.mouser.com/search/ProductDetail.aspx?R=HLMP-CY46-TW0DDvirtualkey63050000virtualkey630-HLMP-CY46-TW0DD">LEDs</a> and <a href="http://www.mouser.com/search/ProductDetail.aspx?R=12BH441%2fCS-GRvirtualkey56100000virtualkey12BH441%2fCS-GR">AAA battery case</a> from <a href="http://www.mouser.com/">Mouser Electronics</a>. The cap screw can be purchased as a pack of 2 from Home Depot for $0.88. Other than that my camera light went together the same as the original article, with the exception that I used a 15 Ohm resistor instead of a 10 Ohm to protect the LEDs. I chose this in order to add the flexibility of using regular alkaline batteries or rechargeable batteries. Since alkaline batteries produce 1.5 Volts typically, three alkalines produce 4.5 Volts. Rechargeable nickel-metal-hydride batteries produce 1.2 Volts typically, so three batteries produce 3.6 Volts. This voltage differential means the current limiting needed to keep each LED's current draw under 2o mA is different if using alkalines or NiMH batteries. For the LEDs I chose from Mouser, the 15 Ohm resistor used with alkalines produces a current of 63 mA or 21 mA per LED. If using NiMH batteries this would amount to approx 17 mA per LED. Therefore, the 15 Ohm resistor is a good compromise that allows me to not worry about battery type.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-12183742331542749152007-12-03T19:14:00.003-05:002008-04-08T14:03:51.523-05:00LED Cube<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/final-1-722063.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/final-1-722058.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/final-2-722099.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/final-2-722092.jpg" alt="" border="0" /></a><br />This is another project I found via the <a href="http://blog.makezine.com/archive/make_podcast/">Make Magazine Podcast</a>. It is very simple to build, especially if you do what the original project recommends and start with the <a href="http://www.adafruit.com/index.php?main_page=product_info&amp;cPath=5&amp;products_id=20">MiniPOV kit</a>. Just follow the podcast's directions and modify the kit to get up and running. I took a somewhat different route. Since the MiniPOV is based off of an Atmel AVR 2313 microcontroller, and I have several of these chips and an <a href="http://www.highonsolder.org/2007/09/avr-programmer.html">AVR programmer</a>, I built the project from scratch and modified it to use the AVR's in-system-programming (ISP) capability instead of a serial port like the MiniPOV. Otherwise my hardware ended up identical to the original.<br /><br />On the software end I had to make some changes to the code from the project's ZIP file. I modified <span style="font-style: italic;">make</span><span style="font-style: italic;">file</span> to look for my USBTiny ISP instead of a serial port. Then all I had to do was follow the remainder of the podcast's instructions to compile, build and program the AVR. To make different LED animations all that is required is modify the LED code matrix in the <span style="font-style: italic;">ledcube.c</span> file to make different LED configurations light up for different amounts of time. Check out the video of one of my animations. Definitely a fun, easy project.<br /><br />Links<br /><ul><li><a href="http://blog.makezine.com/archive/2007/09/make_a_pocket_led_cube_we.html">Make Podcast LED Cube Video</a></li><li><a href="http://blog.makezine.com/archive/2007/09/make_a_pocket_led_cube_we_1.html">Make Podcast LED Cube Files</a></li><li><a href="http://www.das-labor.org/wiki/Blinken_Borgs/en">Crazy Huge LED Cubes</a><br /></li></ul><object width="320" height="266" class="BLOG_video_class" id="BLOG_video-a12110801365463a" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="movie" value="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqgAAAP0YN7YpWvFNWPjMMOzGjlWkcnXnLXFAzhSpeTicMy6HrLY_Mua5ki4ldd40ZkZQZ1FNnY6_yU8Sd1srAJJu2Ohrh0cX_F44fBOII-tbdJcRE6pnRbHRTTwDwEhrT2KLWnpo7XNxg1xm1iwkQRSQVmAzQ-XnwxGmWo4GCQxgOIqnA3kkMi7rdICYpucCmnWzsieZk3F9xg70cJjTQXVxORikkQ3Yf2VC1Ao6XyTOM76W%26sigh%3DilWjT4oCWesdMUjyG0-_jm0i_h0%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3Da12110801365463a%26offsetms%3D5000%26itag%3Dw320%26sigh%3DvliUBRTpfI7RyRgjvgHE_NO_JJ0&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den"> <param name="bgcolor" value="#FFFFFF"> <embed width="320" height="266" src="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqgAAAP0YN7YpWvFNWPjMMOzGjlWkcnXnLXFAzhSpeTicMy6HrLY_Mua5ki4ldd40ZkZQZ1FNnY6_yU8Sd1srAJJu2Ohrh0cX_F44fBOII-tbdJcRE6pnRbHRTTwDwEhrT2KLWnpo7XNxg1xm1iwkQRSQVmAzQ-XnwxGmWo4GCQxgOIqnA3kkMi7rdICYpucCmnWzsieZk3F9xg70cJjTQXVxORikkQ3Yf2VC1Ao6XyTOM76W%26sigh%3DilWjT4oCWesdMUjyG0-_jm0i_h0%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3Da12110801365463a%26offsetms%3D5000%26itag%3Dw320%26sigh%3DvliUBRTpfI7RyRgjvgHE_NO_JJ0&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den" type="application/x-shockwave-flash"></embed></object> Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-55571942686644884122007-11-30T11:26:00.003-05:002008-04-08T14:04:53.968-05:00Play Sirius Internet Radio on Linux ComputerI am posting this because I finally found a solution to a problem that I have been unable to solve for some time. The Sirius Internet Radio player uses an ActiveX plugin to stream audio over the internet. Since computers that use Linux do not have this ActiveX plugin, I thought it was impossible to use Sirius' Internet player. I have since seen some crazy hacks in the Ubuntu forums where people bend over backwards to get it working. Recently though I found a very simple solution which uses a Mozilla Firefox Extension to redirect the audio stream to a media player within Linux and it works perfectly.<br /><br />These instructions are a slightly modified version of what is found in the <a href="http://ubuntuguide.org/">Ubuntu Guide</a> which is a very useful resource for setting up an Ubuntu installation.<br /><h3><a href="http://ubuntuguide.org/wiki/Ubuntu:Gutsy#Enable_Sirius_Internet_Radio_for_Firefox"><span style="font-size:100%;"> Enable Sirius Internet Radio for Firefox</span></a> </h3> <ul><li><a href="http://www.videolan.org/vlc/">Install VLC</a> </li><li>Install the <a href="https://addons.mozilla.org/en-US/firefox/addon/446" class="external text" title="https://addons.mozilla.org/en-US/firefox/addon/446" rel="nofollow">firefox media player connectivity plugin</a></li><li>Launch the <a href="http://www.sirius.com/sirius/servlet/MediaPlayer">Sirius Player</a></li></ul>After authenticating, you will now be able to select which stream to play. Selecting the stream will launch VLC automatically (if you have configured the plugin to do so).Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-68068107868663912282007-11-17T12:53:00.001-05:002008-03-22T16:53:16.833-05:00Apple Wireless Keyboard Setup (Ubuntu 7.10)<a style="color: rgb(255, 255, 255);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/IMG_1033-750722.JPG"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/IMG_1033-750709.JPG" alt="" border="0" /></a><br /><span style="color: rgb(255, 255, 255);font-family:arial;" >Last week I purchased a <a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=FD6BB62&amp;fnode=home/shop_mac/mac_accessories/mice_keyboards&amp;nplm=MB167LL/A">Apple Wireless Keyboard</a> for use with my home theater PC. I had wanted to get a wireless keyboard for a while and the new Apple keyboards are super thin and the wireless one uses Bluetooth, so it has exceptional range. As is sometimes the case with Linux, this device is not as plug and play as we might like. Even though Ubuntu 7.10 (Gutsy) has more built-in Bluetooth utilities than previous versions, it still requires some more advanced setup to get properly synced with the computer. The following tutorial is mostly taken from an <a href="http://ubuntuforums.org/showthread.php?t=224673">Ubuntu Forum Thread</a>, but I have edited it to include some additions from replies to the original thread and for clarity.<br /><br /><span style="font-size:100%;">Note: the expression </span><span style="font-size:100%;">XX:XX:XX:XX:XX:XX represents your particular keyboard's device address and it should be inserted wherever else it appears in the tutorial. This tutorial worked for me for the new aluminum style wireless keyboard pictured, I have not tried it with the older style keyboard.<br /><br /></span></span> <ul style="color: rgb(255, 255, 255);"><li><span style=";font-family:Arial,sans-serif;font-size:130%;" >Install the package bluez-gnome</span></li></ul><span style="color: rgb(255, 255, 255);font-family:arial;" >Code:</span><br /><span style="color: rgb(255, 255, 255);font-family:Arial,sans-serif;" ></span> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>user@ubuntu:~$ sudo apt-get install bluetooth bluez-gnome </b></span> </p> <p style="margin-bottom: 0in; text-decoration: none; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;">Restart your desktop session by logging out and logging in again. This will automatically start the bluetooth applet which will help you enter the PIN during the bluetooth pairing process.</span></p><p style="margin-bottom: 0in; text-decoration: none; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><br /></span></p><ul style="color: rgb(255, 255, 255);"><li><span style="font-family:Arial,sans-serif;"><span style="font-size:130%;">Find out the Bluetooth Hardware Device Address of the Apple Keyboard</span></span></li></ul><span style="color: rgb(255, 255, 255);font-family:Arial,sans-serif;font-size:100%;" >Code:</span><p style="margin-bottom: 0in; text-decoration: none; color: rgb(255, 255, 255);"> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"></p> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>user@ubuntu:~$ hcitool scan </b></span> </p> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>Scanning ... </b></span> </p> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"> <span style="font-weight: bold;font-family:arial;font-size:100%;" >XX:XX:XX:XX:XX:XX</span><span style="font-family:Arial,sans-serif;"><b> Apple Wireless Keyboard<br /></b></span></p><span style="font-weight: bold; color: rgb(255, 255, 255);"><br /></span> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"></p><ul style="color: rgb(255, 255, 255);"><li><p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;"><span style="font-size:130%;">Edit the file /etc/bluetooth/hcid.conf</span></span></p></li></ul><span style="color: rgb(255, 255, 255);font-family:Arial,sans-serif;font-size:100%;" >Code:</span> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><span style="font-size:100%;"><b>user@ubuntu:~$ sudo gedit /etc/bluetooth/hcid.conf </b></span></span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;">Enter the following stanza at the end of the file: </span> </p> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>device </b></span><span style="font-weight: bold;font-family:arial;font-size:100%;" >XX:XX:XX:XX:XX:XX</span><span style="font-family:Arial,sans-serif;"><b> { </b></span> </p> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"> <span style="font-family:Arial,sans-serif;"><b>name "Apple Wireless Keyboard"; </b></span> </p> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"> <span style="font-family:Arial,sans-serif;"><b>auth enable; </b></span> </p> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"> <span style="font-family:Arial,sans-serif;"><b>encrypt enable; </b></span> </p> <p style="margin-bottom: 0in; font-style: normal; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>} </b></span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;">Save the file and close gedit.<br /></span></p><p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><br /></span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"></p><ul style="color: rgb(255, 255, 255);"><li><p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;"><span style="font-size:130%;">Enable HID-support at start-up:</span></span></p> </li></ul> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style=";font-family:Arial,sans-serif;font-size:100%;" >Code:</span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>user@ubuntu:~$ sudo gedit /etc/default/bluetooth </b></span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;">Change <b>"HIDD_ENABLED=1" </b></span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;">Save the file, close gedit</span></p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><br /></p> <ul style="color: rgb(255, 255, 255);"><li><p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;"><span style="font-size:130%;">Restart the Bluetooth subsystem</span></span></p> </li></ul> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style=";font-family:Arial,sans-serif;font-size:100%;" >Code:</span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>user@ubuntu:~$ sudo /etc/init.d/bluetooth restart </b></span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"> <span style="font-family:Arial,sans-serif;"><b>* Restarting Bluetooth services... [ ok ] </b></span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;">Notice that this will terminate any active bluetooth connections. However, reconnecting should not be a problem </span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><br /></p> <ul style="color: rgb(255, 255, 255);"><li><p style="margin-bottom: 0in;"><span style="font-family:Arial,sans-serif;"><span style="font-size:130%;">Complete the device pairing</span></span></p> </li></ul> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;">Restart the keyboard again using the switch on the side to make it discoverable. Do not hit any keys on your Apple Keyboard unless this tutorial says so. It might cause all sorts of strange trouble during the pairing procedure. Right after restarting the keyboard, run the following command: </span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style=";font-family:Arial,sans-serif;font-size:100%;" >Code:</span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>user@ubuntu:~$ sudo hidd --connect </b></span><span style="font-weight: bold;font-family:arial;font-size:100%;" >XX:XX:XX:XX:XX:XX</span> </p> <p style="margin-bottom: 0in; color: rgb(255, 255, 255);"><span style="font-family:Arial,sans-serif;"><b>Ubuntu will now try to connect to the keyboard without showing any progress bar or other output.</b> <b>Enter the PIN 0000 and hit the enter key (both on your Apple Keyboard).</b> Right after hitting enter, a notification window should pop up on your desktop asking you for the PIN you just entered. Enter it. "hidd" should finish without further outputs. You should now be set up.</span></p>Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-33136959376962309972007-09-28T18:09:00.001-05:002008-03-22T16:52:42.730-05:00USB Device Charger<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/Mintyboost-706996.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/Mintyboost-706981.jpg" alt="" border="0" /></a><br />This was a nice, simple project that is also very useful. Called the <a href="http://www.ladyada.net/make/mintyboost/index.html">Minty Boost</a>, as soon as I first read about this device I wanted to build one. Basically it transforms the 3 Volts from 2-AA batteries into 5 Volts and has a USB connector to attach the device you wish to charge (IPod, Sansa, cell phone, etc.); the bonus is that it all fits inside a Altoids Gum tin. You can build this from scratch, but some of the parts are somewhat uncommon and the printed circuit board is made to fit inside the tin so I just bought the kit (full kits are $19.50, PCBs are $5). It is a very simple kit to build and takes only about 30 minutes to complete. Then you just stick it in an Altoids Gum tin and you're done. Now I can charge my Sandisk Sansa's battery even if I don't have a computer or an outlet around.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-85725068219815223952007-09-22T22:21:00.001-05:002008-03-22T16:52:13.024-05:00AVR Programmer<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/USB-Tiny-ISP-1-764510.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/USB-Tiny-ISP-1-764507.jpg" alt="" border="0" /></a><br />As you can probably tell from my last couple of posts I have been getting into projects involving microcontrollers. While the GPS receiver I built used a PIC, many projects use an <a href="http://www.atmel.com/dyn/products/devices.asp?family_id=607">AVR</a> instead. Made by Atmel, they are a direct competitor to the PIC. For a good comparison of the two <a href="http://www.ladyada.net/library/picvsavr.html">check out this article</a>. One of the more unique differences is that AVRs allow for in-circuit-programming. This means that you can plug the programmer into a header-pin assembly in the AVRs circuit and reprogram the AVR without having to pull the chip out of the circuit like with a PIC.<br /><br />After seeing several interesting projects using AVRs in the <a href="http://makezine.com/blog/">MAKE Blog</a>, I decided it would be a good idea to make an AVR programmer. Just like with my PIC programmer I did not want to be tied to a serial port and I didn't want to have to spend too much. I did some investigating and found the <a href="http://www.ladyada.net/make/usbtinyisp/">USB Tiny ISP</a>. It is offered as a kit (or you can build if from scratch) for $22. The kit goes together very easily; the directions on the website are well written and detailed. Mine is pictured above and so far it functions perfectly. AVR projects are now in my near future.Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-32751381813700708692007-09-22T21:36:00.003-05:002008-06-16T14:29:00.402-05:00GPS Receiver (Part 2)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/GPS-Unit-700936.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/GPS-Unit-700932.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/GPS-Display-700957.jpg"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/GPS-Display-700954.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/GPS-Schematic-759995.jpeg"><img style="margin: 0pt 0px 10px 10pt; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/GPS-Schematic-759992.jpeg" alt="" border="0" /></a><br />In the previous post I described how I prototyped my own GPS receiver. Since then I modified a small plastic enclosure to hold the LCD, GPS module and circuit board holding the PIC microcontroller and power circuit. I also added code (see link below) that checks for the state of a switch to determine if you wish to have the LCD's backlight on or off. I decided to add this feature after measuring the current draw of the receiver as a whole. With the backlight on, the receiver draws an average of 165mA; with the backlight off, the receiver draws an average of 125mA (that's about a 25% savings). Since the receiver runs off of a single 9 volt battery (alkaline - 600mAh typically), that power savings is equivalent to as much as 72 minutes of additional time the unit will now be able to run. With a lithium 9 volt (1200mAh - typically) it could add another 2 hours and 24 minutes.<br /><br />The picture on the right shows the receiver as completed; I will be the first to say that it is not the most professional looking, but it works. The switch on the right is for power and the other switch is for the backlight. The center picture shows the 4 possible LCD states: searching with backlight off, searching with backlight on, receiving GPS data with backlight off, and receiving GPS data with backlight on. The last picture is the schematic for the receiver unit.<br /><br />I did some research and here are some constants that show how useful this unit can be for many different functions.<br /><ul><li>1 Degree = 60 Nautical Miles (69 Miles)</li><li>1 Minute = 1 Nautical Mile (1.15 Miles)</li><li>1 Second = 101.2 Feet</li><li>0.1 Seconds = 10 Feet</li></ul>With these relationships and some basic geometry, I can determine distances and directions to and from GPS way points.<br /><br />This was a really satisfying project to do. With just a handful of parts and a couple of modules I have a fully functional and now portable GPS receiver.<br /><ul><li><a href="http://filer.case.edu/jec24/highonsolder/GPS3.BAS">Final GPS PicBasic Code</a></li></ul><br />Parts List:<br /><ul><li>LCD with backlight (2 lines, 16 characters per line)</li><li>Parallax GPS Module</li><li>PIC16F84A</li><li>7805 (5 Volt Voltage Regulator)<br /></li><li>4700 Ohm Resistor</li><li>4 MHz Crystal Oscillator</li><li>100uF Electrolytic Capacitor</li><li>0.1uF Ceramic Capacitor</li><li>9 Volt Battery</li><li>SPST Switch (power)<br /></li><li>SPDT Switch (backlight)<br /></li></ul>Joehttp://www.blogger.com/profile/02539531973641201676noreply@blogger.comtag:blogger.com,1999:blog-7312037828648622436.post-89068598442617734062007-09-16T21:20:00.003-05:002008-06-16T14:28:26.973-05:00GPS Receiver (Part 1)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://filer.case.edu/jec24/uploaded_images/IMG_0908-748702.JPG"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://filer.case.edu/jec24/uploaded_images/IMG_0908-748693.JPG" alt="" border="0" /></a><br /><span style="font-family:arial;">If you have never been to the MAKE Magazine website you should really check it out. They have tons of project ideas on their site and more are posted every day on their project blog. In July I saw an article regarding a project that took a GPS module, a simple LCD display, a Basic Stamp to interface the two together, and created a GPS receiver. The receiver displays your coordinates in degrees, minutes, and seconds.<br /><br />I was intrigued because for such a complex sounding project it appeared very straightforward and relatively inexpensive. Upon further digging I discovered that this project used a Basic Stamp 2 chip for a processor, along with a Basic Stamp Development Board and software; these together cost around $200, not including the cost for the LCD Display and GPS module (another $100).Then I remembered that the Basic Stamp is actually based off of and very similar to the PIC series of microcontrollers that I had previously worked with in college. After looking at the code provided on the project page, I decided that with a little effort I could convert it for use with a PIC (I used a PIC16F84A, but others can be used, they