<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>imsolidstate</title>
	<atom:link href="http://www.imsolidstate.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.imsolidstate.com</link>
	<description>Always improving things...</description>
	<lastBuildDate>Thu, 01 Mar 2012 21:28:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>BT5 USB flash drive persistent install</title>
		<link>http://www.imsolidstate.com/archives/1030</link>
		<comments>http://www.imsolidstate.com/archives/1030#comments</comments>
		<pubDate>Thu, 01 Mar 2012 21:28:04 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backtrack]]></category>
		<category><![CDATA[BT5]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=1030</guid>
		<description><![CDATA[Thanks to the computer systems security class I am taking for my masters program, I&#8217;ve been messing around with Linux for about a month now trying out different distros and figuring out the tools in Backtrack. BT is really useful but it&#8217;s annoying to always have to start from scratch with the live image, especially [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-1034" title="Sony 16GB flash" src="http://www.imsolidstate.com/wp-content/uploads/2012/03/TD817.jpg" alt="Sony 16GB flash" width="144" height="144" />Thanks to the computer systems security class I am taking for my masters program, I&#8217;ve been messing around with Linux for about a month now trying out different distros and figuring out the tools in Backtrack. BT is really useful but it&#8217;s annoying to always have to start from scratch with the live image, especially if you need drivers that aren&#8217;t included on the iso. A persistent installation is the way to go but I couldn&#8217;t get any of the methods I found on the web to work. I figured out an easy way that worked for me so I thought I would post it.<span id="more-1030"></span></p>
<p>First download the <a href="http://www.backtrack-linux.org/">BT5 iso</a>. Then install UNetbootin if your system doesn&#8217;t already have it:</p>
<p><code> sudo apt-get install unetbootin </code></p>
<p>You will also need a big USB flash drive, I used a 16GB.The first part of these instructions comes from the <a href="http://www.backtrack-linux.org/wiki/index.php/Persistent_USB">persistent USB wiki</a>, and the rest I figured out myself. When I followed the directions in the wiki, the PC would wipe sdb1 for some reason and fail to boot. I used UNetbootin to get things working.</p>
<p>Now to format the drive. Plug in the flash drive and use the fdisk command to list the flash drive:</p>
<p><code>sudo fdisk -l</code></p>
<p>It will probably show up as /dev/sdb. Make note of how many partitions there are, because you will need to delete them in a minute. Obviously, you will also loose the existing data on the drive. Start the partitioning process on the drive by typing</p>
<p><code>sudo fdisk /dev/sdb</code></p>
<p>This starts fdisk on the flash drive. Delete any partitions on the drive by typing &#8216;d&#8217; and then the partition number until there are no partitions. Now create a new partition by typing &#8216;n&#8217;, then &#8216;p&#8217; for a primary partition, then type &#8217;1&#8242; to create partition 1. Select the default start sector, and then &#8216;+2500M&#8217; for the last sector.</p>
<p><code>sudo fdisk /dev/sdb</code></p>
<p><code>Command (m for help): d<br />
Selected partition 1</p>
<p></code></p>
<p><code>Command (m for help): n<br />
Command action<br />
e   extended<br />
p   primary partition (1-4)<br />
p<br />
Partition number (1-4, default 1):<br />
Using default value 1<br />
First sector (2048-15523839, default 2048):<br />
Using default value 2048<br />
Last sector, +sectors or +size{K,M,G} (2048-15523839, default 15523839): +2500M</code></p>
<p>Now change the system ID for the new partition:</p>
<p><code>Command (m for help): t<br />
Selected partition 1<br />
Hex code (type L to list codes): b<br />
Changed system type of partition 1 to b (W95 FAT32)</code></p>
<p>Make it bootable:</p>
<p><code>Command (m for help): a<br />
Partition number (1-4): 1</code></p>
<p>Create the second partition, use the default values for sectors so that the second partition fills the rest of the drive:</p>
<p><code>Command (m for help): n<br />
Command action<br />
e   extended<br />
p   primary partition (1-4)<br />
p<br />
Partition number (1-4, default 2):<br />
Using default value 2<br />
First sector (5122048-15523839, default 5122048):<br />
Using default value 5122048<br />
Last sector, +sectors or +size{K,M,G} (5122048-15523839, default 15523839):<br />
Using default value 15523839</code></p>
<p>Now change partition 2&#8242;s system ID to linux:</p>
<p><code>Command (m for help): t<br />
Partition number (1-4): 2<br />
Hex code (type L to list codes): 83</code></p>
<p>Finally write the changes to disk with the &#8216;w&#8217; command.</p>
<p><code>Command (m for help): w<br />
The partition table has been altered!</code></p>
<p>Now to format the partitions.</p>
<p><code>sudo mkfs.vfat -F 32 -n BT5 /dev/sdb1</code></p>
<p><code> </code></p>
<p><code>sudo mkfs.ext3 -b 4096 -L casper-rw /dev/sdb2</code></p>
<p>Once formatting is complete, you will need to mount the drive. Either unplug/plug the drive and click on it in the file explorer, or type:</p>
<p><code>mkdir /mnt/sdb1</code></p>
<p><code> </code></p>
<p><code>mount /dev/sdb1</code></p>
<p>Now start UNetbootin and point the Diskimage box to the location of the iso on your computer. At the bottom select USB Drive and /dev/sdb1 from the dropdown box. Click OK and wait for the files to be copied.</p>
<p>Once that is done, use the following commands to edit the startup config file. First navigate into sdb1, depending on where it is mounted on your system (use &#8216;mount&#8217; to find out). Then start the editor.</p>
<p><code>cd /mnt/sdb1</code></p>
<p><code> </code></p>
<p><code>nano syslinux.cfg</code></p>
<p>Edit the default option to be persistent. Here is what my text file looks like after I edited it to reflect the persistent option:</p>
<p><code>default menu.c32<br />
prompt 0<br />
menu title UNetbootin<br />
timeout 100</code></p>
<p><code>label unetbootindefault<br />
menu label Default - Persistent<br />
kernel /ubnkern<br />
append initrd=/ubninit file=/cdrom/preseed/custom.seed boot=casper persistent text splash vga=791--</p>
<p>label ubnentry0<br />
menu label BackTrack Text - Default Boot Text Mode<br />
kernel /casper/vmlinuz<br />
append initrd=/casper/initrd.gz file=/cdrom/preseed/custom.seed boot=casper text splash vga=791--</p>
<p>label ubnentry1<br />
menu label BackTrack Stealth - No Networking enabled<br />
kernel /casper/vmlinuz<br />
append initrd=/casper/initrds.gz file=/cdrom/preseed/custom.seed boot=casper  text splash staticip vga=791--</p>
<p>label ubnentry2<br />
menu label BackTrack Forensics - No Drive or Swap Mount<br />
kernel /casper/vmlinuz<br />
append initrd=/casper/initrdf.gz file=/cdrom/preseed/custom.seed boot=casper  text splash vga=791--</p>
<p>label ubnentry3<br />
menu label BackTrack noDRM - No DRM Drivers<br />
kernel /casper/vmlinuz<br />
append initrd=/casper/initrd.gz file=/cdrom/preseed/custom.seed boot=casper  text splash nomodeset vga=791--</p>
<p>label ubnentry4<br />
menu label BackTrack Debug - Safe Mode<br />
kernel /casper/vmlinuz<br />
append initrd=/casper/initrd.gz file=/cdrom/preseed/custom.seed boot=casper  text--</p>
<p>label ubnentry5<br />
menu label BackTrack Memtest - Run memtest<br />
kernel /isolinux/memtest<br />
append initrd=/ubninit -</p>
<p></code></p>
<p><code>label ubnentry6<br />
menu label Hard Drive Boot - boot the first hard disk<br />
kernel /ubnkern<br />
append initrd=/ubninit -</code></p>
<p>When you are done editing the file save it. At this point, you can unmount your drive and boot it. Select persistent at the boot menu, and once BT has loaded, change some things and restart. If it worked, the changes will be saved. The casper-rw partition holds all of your data when using the flash drive, so BT is essentially now &#8220;installed&#8221; there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/1030/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fix your Keurig &#8211; again</title>
		<link>http://www.imsolidstate.com/archives/1013</link>
		<comments>http://www.imsolidstate.com/archives/1013#comments</comments>
		<pubDate>Sun, 19 Feb 2012 03:50:35 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Keurig]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=1013</guid>
		<description><![CDATA[So my Keurig decided to die again &#8211; this time it just started randomly brewing water onto the counter. The power switch didn&#8217;t work, so it got unplugged and when I plugged it back in the display just blinked &#8220;NOT READY&#8221;. It never became ready, and I was annoyed about the thought of having to [...]]]></description>
			<content:encoded><![CDATA[<p>So my Keurig decided to die again &#8211; this time it just started randomly brewing water onto the counter. The power switch didn&#8217;t work, so it got unplugged and when I plugged it back in the display just blinked &#8220;NOT READY&#8221;. It never became ready, and I was annoyed about the thought of having to shell out the cash for another one when this thing seems to break a lot anyway. So I ripped it apart to see if I could fix it. Turns out I could, and it was just a ten cent NPN transistor at fault.</p>
<p><img class="alignnone size-large wp-image-1019" title="Soldering in the new transistor" src="http://www.imsolidstate.com/wp-content/uploads/2012/02/20120218_165820-1024x768.jpg" alt="Soldering in the new transistor" width="645" height="484" /></p>
<p>You have to completely tear down the machine to get to the control board. It&#8217;s actually a bit of a complicated affair considering that it&#8217;s really just a fancy water heater. The controller board is based on a PIC16F917. There are three other boards, one for the pressure sensor, one for the display, and an input power filter. The offending part in my case was on the back of the controller board. I did a little reverse engineering and figured out that the burnt transistor was an NPN, and controlled the valve that bled air pressure when the brewing cycle was finished, before the water tank is refilled. <span id="more-1013"></span>A voltage test confirmed this and showed 12 volts at the solenoid, 5 volts at the micro pin to trigger the solenoid, and the circuit is completed through the NPN&#8217;s emitter connection to ground. I soldered a new MMBT2222 transistor in place of the blown one and powered it on to see if it worked. The lights came on and the pump started up, so I shut it off and put it back together. Then I brewed myself a cup of coffee.</p>
<p>I&#8217;m rusty on my transistors, but if I remember right the 2N2222 is one of the more hardy transistors, so hopefully this one lasts longer. I can&#8217;t figure out why that one died, unless the one that was originally there was really inadequate. There is already a clamping diode across the transistor to protect from the solenoid valve&#8217;s back EMF.</p>
<p><img class="alignnone size-large wp-image-1021" title="20120218_165117" src="http://www.imsolidstate.com/wp-content/uploads/2012/02/20120218_165117-1024x768.jpg" alt="20120218_165117" width="645" height="484" /></p>
<p>It&#8217;s really too bad that the Tassimo got bogged down in the politics of what brands they were going to offer, because the Tassimo is a much better machine. I brewed a ton of coffee with my Tassimo with just one descaling. Unfortunately you can pretty much only get Maxwell House for the Tassimo anymore. So I guess I&#8217;m stuck fixing my Keurig every six months or so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/1013/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breathe life into your Xoom</title>
		<link>http://www.imsolidstate.com/archives/995</link>
		<comments>http://www.imsolidstate.com/archives/995#comments</comments>
		<pubDate>Wed, 04 Jan 2012 22:32:56 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=995</guid>
		<description><![CDATA[A few months ago I bought a Xoom and have mostly been disappointed with it. I use it mainly for internet, which is slow on the tablet plus the interface and keyboard are laggy. There are other problems as well, like the &#8220;recent apps&#8221; button that doesn&#8217;t remember certain apps like the browser and I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago I bought a Xoom and have mostly been disappointed with it. I use it mainly for internet, which is slow on the tablet plus the interface and keyboard are laggy. There are other problems as well, like the &#8220;recent apps&#8221; button that doesn&#8217;t remember certain apps like the browser and I&#8217;ve found if you leave the device on for more than about a day applications start to behave oddly.</p>
<p>I&#8217;ve been thinking hard about selling it because I didn&#8217;t think that rooting it and installing a tweaked ROM was going to be enough to fix it. I decided to try anyway with the new Android 4 (ICS) release. It only took about five minutes using the Xoom with ICS to realize how wrong I was and how good Android 4 is for the Xoom. Everything is better.</p>
<p><img class="alignnone size-large wp-image-1001" title="Android 4 (ICS)" src="http://www.imsolidstate.com/wp-content/uploads/2012/01/20120104_151635-1024x682.jpg" alt="Android 4 (ICS)" width="645" height="429" /></p>
<p>As usual with hacking all things mobile, you will be heading over to XDA if you want your Xoom to behave like it should. I&#8217;m writing a quick tutorial here since the information is pretty spread out on XDA. I had a couple issues that had me searching through pages of threads, so this is what worked for me.<span id="more-995"></span></p>
<p>Step 1: Unlock your Xoom. You can&#8217;t do anything until this is complete, and in the process it will void your warranty and wipe your device. Back up any important data first. The instructions on unlocking your Xoom are <a href="http://forum.xda-developers.com/showthread.php?t=967065&amp;highlight=fastboot">here</a>. After you install the Android SDK, you will need to install the Android tools and a platform (4.0) from the SDK manager. This will install fastboot, which will be in the platform tools folder you installed. You will run a command window in the folder where fastboot is located in order to send the commands to the device.</p>
<p>Step 2: Install a new recovery console. Use the instructions <a href="http://forum.xda-developers.com/showthread.php?t=1074979">here</a>. Use the non-CWM method. You will be sending it through adb and the command window you used earlier. There is a trick though: you can&#8217;t reboot into recovery with the adb commands unless you are already rooted, and if it&#8217;s your first time you obviously aren&#8217;t. So instead of rebooting via the fastboot command, reboot by pressing the volume up key and the power key until the screen goes black. Then count for 3.5-4 seconds after you see the Motorola logo and press volume down. &#8220;Android recovery&#8221; should appear on the screen. Press volume up to select. If the next screen you get is an Android robot with an exclamation mark, you pressed volume up into recovery too soon. Reboot, reflash the recovery file, reboot, and try again. When you get the timing right you will see the ClockworkMod screen and the recovery console.</p>
<p>Step 3: Root your Xoom. Once you can get into the CWM screen at will, download and install the Universal Xoom Root zip file from <a href="http://forum.xda-developers.com/showthread.php?t=1242241">here</a>. You now have control of your Xoom, it&#8217;s time to load new software on it.</p>
<p>Step 4: Install a new ROM. Download the latest ROM and Google apps package from <a href="http://forum.xda-developers.com/showthread.php?t=1400958">here</a>. This is the team EOS ICS ROM, you can pick from any ROMs available on XDA at this point though. Furthermore this is the wi-fi only Xoom ROM (MZ604). If you have a 3G/4G device you will need to get the appropriate ROM from XDA. Place the two zip files on your SD card and install as before, but make sure you do a factory reset first and clear the caches. After you have installed the two zip files, reboot and enjoy your Xoom.</p>
<p>As usual, do this at your own risk. You can ruin your device if you mess something up. If you aren&#8217;t sure about what you are doing, head over to the<a href="http://forum.xda-developers.com/forumdisplay.php?f=948"> XDA Xoom Android development forum</a> and start reading. This tutorial isn&#8217;t a substitute for any of the information at XDA, just a sequence of events that makes first time rooting a little easier to understand. Much respect to the developers at XDA for making this possible. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/995/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PIC32 Ethernet Starter Kit and MPLAB X</title>
		<link>http://www.imsolidstate.com/archives/983</link>
		<comments>http://www.imsolidstate.com/archives/983#comments</comments>
		<pubDate>Sun, 09 Oct 2011 01:51:44 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[PIC]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=983</guid>
		<description><![CDATA[I picked up Microchip&#8217;s PIC32 ethernet starter kit in order to check out their 32-bit processors as well as to get started on embedded web servers. The free TCP/IP stack from Microchip was my motivation, since it can be used on any of their chips, including the 8-bit versions. I also was interested in the [...]]]></description>
			<content:encoded><![CDATA[<p>I picked up Microchip&#8217;s PIC32 ethernet starter kit in order to check out their 32-bit processors as well as to get started on embedded web servers. The free TCP/IP stack from Microchip was my motivation, since it can be used on any of their chips, including the 8-bit versions. I also was interested in the C32 compiler, since it is free. I used MPLAB X for the test, along with the downloadable Microchip application libraries. I have been using MPLAB X for PIC18 development, and I really like it. It&#8217;s a nice IDE.</p>
<p>This review will cover getting the SKDE up and running with the TCPIP Demo App from the application libraries in MPLAB X.</p>
<p><img class="alignnone size-full wp-image-984" title="MPweb" src="http://www.imsolidstate.com/wp-content/uploads/2011/10/MPweb.bmp" alt="MPweb" width="609" height="498" /></p>
<p><span id="more-983"></span>Download and install:</p>
<p><a href="http://www.java.com/en/download/index.jsp">Java</a></p>
<p><a href="http://ww1.microchip.com/downloads/mplab/X_Beta/index.html">MPLAB X</a></p>
<p><a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=2680&amp;dDocName=en547784">Microchip Application Libraries</a></p>
<p>When you run the CD that comes with the ethernet starter kit, you will have an option to install from CD. This will also install MPLAB 8. I couldn&#8217;t find a way around doing this, as the driver for the board is buried somewhere in that install. It won&#8217;t install the starter kit otherwise.</p>
<p>When the install is completed, start the driver switcher application from the Microchip program directory. Select PIC32 SK, and the radio button to configure for MPLAB X. Apply the setting and wait for it to complete. Then launch MPLAB X. Select Open Project from the file menu. Navigate to the Microchip Solutions directory, then TCPIP, finally select Demo App and MPLAB X. When you open the project it will start loading. It takes a while since the code stack is large. When it loads set the project configuration to the ethernet starter kit (C32-PIC32_ETH_SK). Finally you should be able to build and load the project to the target.</p>
<p>Once complete, plug the ethernet port into a router, where it will get an IP address. Logging on to the router will let you see attached devices and find the assigned IP. You should be able to put the IP in your browser now and see the Microchip demo page.</p>
<p>There are video tutorials on Microchip&#8217;s website that detail the dynamic webpage capabilities of the device. The demo application supports a lot of processors and protocols, so my next task will be to dig in and figure out the smallest code necessary to just run HTTP on the PIC32.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/983/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Netgear WGR614v7</title>
		<link>http://www.imsolidstate.com/archives/981</link>
		<comments>http://www.imsolidstate.com/archives/981#comments</comments>
		<pubDate>Fri, 07 Oct 2011 14:53:39 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=981</guid>
		<description><![CDATA[I&#8217;ve reached the conclusion that this wireless router is pretty much useless. Despite my earlier efforts of heatsinking the processor (which did help), sending email logs when the log was full (unsure if that was useful at all), and updating the firmware to the latest and greatest the thing would still refuse to connect to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve reached the conclusion that this wireless router is pretty much useless. Despite my earlier efforts of heatsinking the processor (which did help), sending email logs when the log was full (unsure if that was useful at all), and updating the firmware to the latest and greatest the thing would still refuse to connect to the WAN randomly.</p>
<p>I did some more digging and figured out that the router doesn&#8217;t really have a WAN port, despite the port on the back being labeled as such. The switch controller is actually a six-port controller, and only five are used. Even though the WAN port on the router is physically separated from the other four ports, the switch controller sees it exactly the same as the rest. All five of the ethernet ports on the back are auto-sensing ports so any one has uplink capability. The polarity of the connection is tested during link or when more than three packets are received with inverted end-of-packet pulses. If any of the ports exhibit this behavior the switch controller reverses the port polarity and stores that status in a register. That port then becomes an uplink.</p>
<p>What I figured out was that if the switch ports are used for other devices, the router will eventually fail to uplink. That is, if you use it as an access point instead of a router, it&#8217;s fine. When you start using the  switch ports it gets confused. I have successfully had the router running for a while by connecting my wired devices through a switch and then uplinking just the switch to port 2, with the router then uplinking to the gateway. Evidently the router&#8217;s processor has an issue with its mapped memory.</p>
<p>I&#8217;ve now bought a Linksys E2500 wireless N router to replace this thing. You can get refurbished wifi routers at <a href="http://homestore.cisco.com/en-us/products/linksys-outlet-refurbished_stcVVcatId543906VVviewcat.htm">Cisco&#8217;s store</a> for about half price.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/981/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ELM327 emulator</title>
		<link>http://www.imsolidstate.com/archives/977</link>
		<comments>http://www.imsolidstate.com/archives/977#comments</comments>
		<pubDate>Fri, 07 Oct 2011 00:30:01 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Automotive]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=977</guid>
		<description><![CDATA[I&#8217;ve been wanting to get diagnostic data from my truck for quite a while, but I haven&#8217;t wanted to spend the big bucks on the tools. Recently though I came across the ELM327. It&#8217;s an all-in-one IC solution for a scan tool. It even has a UART. You just need a few external parts for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wanting to get diagnostic data from my truck for quite a while, but I haven&#8217;t wanted to spend the big bucks on the tools. Recently though I came across the ELM327. It&#8217;s an all-in-one IC solution for a scan tool. It even has a UART. You just need a few external parts for different COM interfaces and an OBDII connector. However, the IC itself is <a href="http://www.elmelectronics.com/obdic.html#ELM327">$32.50</a>, and you still have to source the OBDII connector, create the schematic, do the layout, make the board, etc. So I decided to try one of the &#8220;ELM327 based&#8221; products off eBay.  It was $20 shipped from Hong Kong, and already has a USB interface.</p>
<p><img class="alignnone size-full wp-image-978" title="dtcsComposite" src="http://www.imsolidstate.com/wp-content/uploads/2011/10/dtcsComposite.bmp" alt="dtcsComposite" /></p>
<p>The product is based on a PIC18, with an FTDI FT232R serial to USB converter. Use FTDI&#8217;s driver when you connect it to your PC though. I used the driver included on the CD that came with the tool, and it enumerated as a &#8220;high speed USB serial UART&#8221; and wouldn&#8217;t communicate.  I had to use FTDI&#8217;s driver removal tool to get rid of it so I could reinstall the correct one.</p>
<p>I tried the device on my truck with a couple different software programs: ScanTool.net, OBD2Spy, and wOBD. However the results were underwhelming, as I got two different sets of codes with the first two and the last program wouldn&#8217;t communicate with the tool.  ScanTool.net reported P0403, P0405, and P0460. OBD2Spy gave me P0204, P0304, and P0500. Obviously that&#8217;s not very helpful.</p>
<p>So I opened up the ELM327 datasheet and Realterm.  Realterm is always my favorite terminal program, but in this case I had to switch to Hyperterminal since Realterm doesn&#8217;t have the &#8220;Append line feeds to incoming line ends&#8221; feature. Realterm overwrites everything from the device on the same line.</p>
<p>I started with a simple protocol test, to make sure everything is working. Then I tried pulling PID 05, which is coolant temperature. It responded with the proper value. So I moved on to checking the number of codes. There were two. Finally I pulled those codes. They turned out to be P0204, P0304, and P0500. I&#8217;m not sure why the ECU thought there was two codes but listed three. Anyway, OBD2Spy gets the nod here. If you look at the output you can see that the other program was off by one byte, which is why the codes are similar but incorrect.</p>
<p>So the emulator works as advertised, at least in this test. The next problem though is that there are only a handful of previously defined PIDs that auto manufacturers use so that they can get diagnostic tool companies to pay for the extended PIDs required to actually do any useful troubleshooting. In order to get real-time data of detailed systems, you have to pay for software that has the extended PIDs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/977/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CNC version 2.0</title>
		<link>http://www.imsolidstate.com/archives/965</link>
		<comments>http://www.imsolidstate.com/archives/965#comments</comments>
		<pubDate>Fri, 01 Jul 2011 17:32:30 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[CNC]]></category>
		<category><![CDATA[Engraving]]></category>
		<category><![CDATA[Gcode]]></category>
		<category><![CDATA[PCB]]></category>
		<category><![CDATA[Stepper]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=965</guid>
		<description><![CDATA[I finally finished putting together my second CNC machine. Again this one is put together with surplus parts, but they are much better surplus parts. I have the luxury of three linear slides from Newmark Systems, that have dual profile rails and recirculating ball slides, along with 16TPI precision screws and recirculating ball guides. In [...]]]></description>
			<content:encoded><![CDATA[<p>I finally finished putting together my second CNC machine. Again this one is put together with surplus parts, but they are much better surplus parts. I have the luxury of three linear slides from Newmark Systems, that have dual profile rails and recirculating ball slides, along with 16TPI precision screws and recirculating ball guides. In short, the new machine is solid as a rock, and has more torque.</p>
<p><img class="alignnone size-large wp-image-966" title="New 3-axis CNC" src="http://www.imsolidstate.com/wp-content/uploads/2011/07/IMAG0122-612x1024.jpg" alt="New 3-axis CNC" width="612" height="1024" /></p>
<p><span id="more-965"></span>I used a dremel this time instead of a router, since the router was pretty much overkill for engraving anything. I made a mount for the dremel by cutting up the little plastic guide that comes with it. It has an approximate O.D. of 1&#8243; and acts as a nut that you can clamp with a shaft collar, and still unscrew the dremel from the mount if you need to get it out. I welded the shaft collar to a stainless steel bracket.</p>
<p><img class="alignnone size-large wp-image-968" title="Dremel mount" src="http://www.imsolidstate.com/wp-content/uploads/2011/07/IMAG0067-copy-1024x612.jpg" alt="Dremel mount" width="645" height="385" /></p>
<p>I haven&#8217;t made any boards yet to see if the dremel has much z-axis play.</p>
<p>There&#8217;s nothing special about this machine electronics-wise. Since I have NEMA23 steppers and 16TPI lead screws I don&#8217;t need a really high voltage drive or anything special. I&#8217;m using a 24VDC linear power supply with two automation direct stepper drives and one from Schneider. I didn&#8217;t connect the home and limit switches as I don&#8217;t think they have much value on machines this small. It&#8217;s a lot of work to do proper limit switches that disable the drive and signal the controller that a limit has been reached. Also to have home and limit switches on each axis you need two parallel ports. TurboCNC, being run in DOS, can only use the onboard parallel port so you can&#8217;t use PCI parallel port cards with TurboCNC. Only Mach3 can recognize inputs on the extra card since it&#8217;s address will map outside of the legacy range.</p>
<p><iframe width="640" height="510" src="http://www.youtube.com/embed/rNzUU_N8y0g?rel=0" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/965/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Netgear wireless router repair</title>
		<link>http://www.imsolidstate.com/archives/962</link>
		<comments>http://www.imsolidstate.com/archives/962#comments</comments>
		<pubDate>Tue, 28 Jun 2011 20:58:34 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=962</guid>
		<description><![CDATA[My wifi internet connection has been slowly deteriorating. I originally thought it was my trusty old IBM T42 going out, but when I got my Alienware M15x it was still bad with that machine. I&#8217;ve had a few problems with this router: it sometimes refuses to allow wireless connections to access the gateway. If you [...]]]></description>
			<content:encoded><![CDATA[<p>My wifi internet connection has been slowly deteriorating. I originally thought it was my trusty old IBM T42 going out, but when I got my Alienware M15x it was still bad with that machine. I&#8217;ve had a few problems with this router: it sometimes refuses to allow wireless connections to access the gateway. If you log in to the router&#8217;s interface over wifi via it&#8217;s IP and clear the log, it will then allow wifi access to the gateway. I set up the router to automatically email the log to an email address when the log is full. That worked for most of the time, but occasionally you still have to log in and do it manually.</p>
<p>Recently though the connection speed over wifi plummeted. I was going to buy a new wireless AP, but I&#8217;m pretty cashed at the moment so I took the router apart to see if I could buy some time.</p>
<p><img class="alignnone size-large wp-image-963" title="Wifi router with heatsinks" src="http://www.imsolidstate.com/wp-content/uploads/2011/06/DSC01054-1024x768.jpg" alt="Wifi router with heatsinks" width="645" height="484" /></p>
<p>You could pretty clearly see that the microprocessor has overheated. The conformal coating is brown on the bottom side of the PCB. I used an infrared thermometer to measure the temperature of the chip, it was running at about 74°C. The ethernet switch controller IC had a similar temperature, but it&#8217;s a larger leaded package whereas the CPU looks like a BGA package. I had some memory heatsinks that I cut to fit the two chips, and with that and some thermal paste I had heatsinks for the two heaters in my router case. They are low profile enough that the case will still go on.</p>
<p>My router works like it should again: speedtest.net reports an average of 18Mbps download speed. The heatsinks keep both ICs at about 49°C now. Guess I won&#8217;t need that new AP for a while.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/962/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Canon DSLR shutter release from any switch contact</title>
		<link>http://www.imsolidstate.com/archives/954</link>
		<comments>http://www.imsolidstate.com/archives/954#comments</comments>
		<pubDate>Tue, 28 Jun 2011 19:27:54 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Cameras]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=954</guid>
		<description><![CDATA[I&#8217;ve long wanted a TC-80N3 remote release for my EOS1D for the long exposure and intervalometer capability. Unfortunately a real Canon one is at least $150, and just out of principle I&#8217;m not paying that. A couple months ago I decided to just try one of the identical but rebranded ones off of eBay for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve long wanted a TC-80N3 remote release for my EOS1D for the long exposure and intervalometer capability. Unfortunately a real Canon one is at least $150, and just out of principle I&#8217;m not paying that. A couple months ago I decided to just try one of the identical but rebranded ones off of eBay for $20. Ships from Hong Kong, Shenzen, etc. so it takes a while to get here, but it works, so I&#8217;m happy. I can never leave well enough alone though, so I took it apart and added a jack so I can hook anything with a switch contact to my camera and let it take a picture.</p>
<p><img class="alignnone size-large wp-image-956" title="Remote release with external jack" src="http://www.imsolidstate.com/wp-content/uploads/2011/06/IMAG0041-1024x612.jpg" alt="Remote release with external jack" width="645" height="385" /></p>
<p>It&#8217;s pretty straightforward, there&#8217;s three metal contacts. The lowest one is ground, the next one is prefocus, and the last one is the shutter release. The signals are active low. I wired the three to a headphone jack on the bottom of the remote. To test it out I bought a ten dollar motion sensing security light and took out the motion sensor, then wired the output of the sensor to a 120VAC relay. The relay contacts trigger the shutter whenever the motion sensor sees anything.</p>
<p>You can use anything with a switch contact to trigger the camera, just remember that it&#8217;s not protected. If you mess up, you can easily fry your camera. Look for &#8220;dry&#8221; contacts if you are unsure. Canon DSLRs might allow for transistor pull-downs, but I haven&#8217;t tried that. It&#8217;s easier to just create an isolated contact through a relay for the safety of your camera.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/954/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alienware AlienFX repair</title>
		<link>http://www.imsolidstate.com/archives/927</link>
		<comments>http://www.imsolidstate.com/archives/927#comments</comments>
		<pubDate>Sat, 11 Jun 2011 01:42:51 +0000</pubDate>
		<dc:creator>imsolidstate</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[AlienFX]]></category>
		<category><![CDATA[Alienware]]></category>
		<category><![CDATA[area 51]]></category>
		<category><![CDATA[m15x]]></category>

		<guid isPermaLink="false">http://www.imsolidstate.com/?p=927</guid>
		<description><![CDATA[So the other day I was browsing craigslist looking for a way to get rid of one of my Xbox 360s. I found a posting for an Alienware m15x laptop, which said they would be willing to trade for an Xbox. It had an issue where it would shut down if you moved the lid. [...]]]></description>
			<content:encoded><![CDATA[<p>So the other day I was browsing craigslist looking for a way to get rid of one of my Xbox 360s. I found a posting for an Alienware m15x laptop, which said they would be willing to trade for an Xbox. It had an issue where it would shut down if you moved the lid. Since it was otherwise working, had the 1920&#215;1200 LCD, T9500 CPU, 4GB RAM, Blu-ray, etc. I picked it up.<br />
I tore it down and figured out the problem: the wire bundle for the lid&#8217;s AlienFX lights was chafed bad where it goes through the hinge. It was shorting out which is why it would shut down. I carefully seperated out the melted wires and repaired the bundle with a fine-gauge hard drive cable.</p>
<p><img class="alignnone size-large wp-image-928" title="AlienFX wiring bundle repair" src="http://www.imsolidstate.com/wp-content/uploads/2011/06/IMAG0230-1024x612.jpg" alt="AlienFX wiring bundle repair" width="645" height="385" /></p>
<p><span id="more-927"></span>So this got the lights working. Unfortunately, they aren&#8217;t all that simple to work with. The earliest version of Alienware&#8217;s command center works and allows you to set the colors, fades, etc. It won&#8217;t write to the AlienFX EEPROM though, and later versions of CC can&#8217;t communicate with the AlienFX board at all (This is a pre-Dell Alienware machine, the Dell version has different hardware). The lights are controlled by this AlienFX board (which I&#8217;m guessing lives on the motherboard), which enumerates as a USB device. Once you have an OS installed, you can try and write directly to the device. I haven&#8217;t been able to get successful EEPROM writes to the device though, and since I hacked the registry on mine to get the backlit keyboard working, the colors flash somewhat randomly during boot until Windows loads and starts the AlienFX software. Then the lights resume doing whatever you set them to. Evidently it&#8217;s writing stuff to the EEPROM, but it&#8217;s just not the right stuff.  I tried using AlienFX Lite from <a href="http://forum.notebookreview.com/alienware/458528-alienfx-lite-linux-windows-alienfx-tool.html">notebookreview.com</a>, but I only get an error message that the packet was the wrong size.</p>
<p><img class="alignnone size-full wp-image-930" title="Area 51 M15x" src="http://www.imsolidstate.com/wp-content/uploads/2011/06/AWPC.gif" alt="Area 51 M15x" width="640" height="428" /></p>
<p>Since I had to add a couple registry keys and reboot to force the BIOS / AlienFX controller to recognize the keyboard, I&#8217;m guessing there is another key that I&#8217;m missing to get the board to recognize the proper programming sequence. Or maybe I need a different BIOS, but I can&#8217;t find one for this older version of the m15x. I suppose I don&#8217;t really care at this point, since the FX does what I want in Windows anyway.</p>
<p>The only thing I&#8217;d like to fix is that with CC A03 the power light flashes off briefly every time it repeats the color cycle. It gets pretty annoying looking at the screen when the power light just below it is monotonously flashing. The way I get around this is by creating a bunch of themes in A03, and then uninstalling A03 and installing A05. A05 automatically picks up the previous theme, and uses it. If you start the AlienFX editor it crashes, so if you need to edit one of your themes you have to install A03 again. You can also edit the script but it&#8217;s cumbersome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.imsolidstate.com/archives/927/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

