Sunday, February 16, 2014

Fix ‘File Path Too Long’ Error – Windows

How to Fix ‘File Path Too Long’ Error While Copying, Deleting or Opening Files, Without Using Third Party Applications

This is an error you might have experienced more at work than at home. You decided to copy a file or take a backup of it to another location or drive, you browse to the source location and starts copying. But you get this error, instead.

clip_image002 clip_image003

clip_image004

Why does it come?

There is a pre-defined character limit beyond which you cannot name a file or folder, and it varies from one OS to another. Mostly it varies between 256 and 260 characters. This is the character limit for a file name, which excludes the file path under which it is located, like “C:\Documents and Settings\Test User\Desktop\test file.txt”. But, when you copy a file from one location, it takes into account the entire file path. So, if the file is residing under a folder which is too deep or too long, that has a length beyond the set-limit, you will get errors like the ones shown above.

How do I know that the file path length is causing the issue?

  • One way you will know is definitely from the error messages similar to the ones above which clearly mentions the problem.
  • Some other times, it won’t. You will simply get a message saying ‘Cannot Copy’ in the title.
  • Or, some other times, the files won’t open properly. They would open and close instantly without giving any errors.
  • Also when you right-click such files, the number of options available in the right-click menu would also be limited compared to other files.

clip_image005

All these are caused by those incredibly long file paths.

So, how can I copy the files or fix this issue?

There are a couple of ways you can fix this easily without the use of any 3rd party applications.

  1. Check the folder path, and shorten some of the folder names in between thereby reducing the file path length. You don’t necessarily need to put the folder name as ‘Mission Impossible Three’ when you can still recognize it as ‘MI 3.’
  2. The main thing many people miss when they save a file or folder their Desktop is that the actual path to that folder in desktop is either ‘C:\Documents and Settings\%username%\Desktop’ or ‘C:\Users\%username%\Desktop’ depending on your OS. So as you can see, its already longer than you thought it is. Go to Start — Run and type ‘cmd‘ and press OK, or click start/press windows key and type ‘Command Prompt‘. Once in the command prompt window, type the following command :

subst V: “C:\TheRidiculouslyLongFolderName

WhichYouDontNeedAtAll” ,

where

subst = substitute command

V = a drive letter of my choice, you can select your own.

C:\TheRidiculouslyLongFolderNameWhichYouDontNeedAtAll = the file path you want to shorten. Change it according to your situation.

clip_image006

So, basically this command would convert the entire folder path you provide in the command, into a single temporary drive letter, like V in this case, which gets created in My Computer. Now all you need to do is, go to the My Computer, and open the V drive, and copy the data from there.

clip_image007

Note : To remove the new drive from My Computer, go to Command Prompt again and type subst V: /d

There you have it, try this the next time you get the error, and see how it goes. If you are still confused, let me know in the comments section below.

Taken From: http://vimalsuresh.com/2013/08/08/how-to-fix-file-path-too-long-error-while-copying-deleting-or-opening-files-without-using-third-party-applications/

More Details on “subst”, can be found at:

Tuesday, February 11, 2014

Beginner’s Guide to IPTables (Linux Firewall)

The Beginner’s Guide to iptables, the Linux Firewall

clip_image002

Iptables is an extremely flexible firewall utility built for Linux operating systems. Whether you’re a novice Linux geek or a system administrator, there’s probably some way that iptables can be a great use to you. Read on as we show you how to configure the most versatile Linux firewall.

About iptables

iptables is a command-line firewall utility that uses policy chains to allow or block traffic. When a connection tries to establish itself on your system, iptables looks for a rule in its list to match it to. If it doesn’t find one, it resorts to the default action.

iptables almost always comes pre-installed on any Linux distribution. To update/install it, just retrieve the iptables package:

sudo apt-get install iptables

There are GUI alternatives to iptables like Firestarter, but iptables isn’t really that hard once you have a few commands down. You want to be extremely careful when configuring iptables rules, particularly if you’re SSH’d into a server, because one wrong command can permanently lock you out until it’s manually fixed at the physical machine.

Types of Chains

iptables uses three different chains: input, forward, and output.

Input – This chain is used to control the behavior for incoming connections. For example, if a user attempts to SSH into your PC/server, iptables will attempt to match the IP address and port to a rule in the input chain.

Forward – This chain is used for incoming connections that aren’t actually being delivered locally. Think of a router – data is always being sent to it but rarely actually destined for the router itself; the data is just forwarded to its target. Unless you’re doing some kind of routing, NATing, or something else on your system that requires forwarding, you won’t even use this chain.

There’s one sure-fire way to check whether or not your system uses/needs the forward chain.

iptables -L -v

clip_image003

The screenshot above is of a server that’s been running for a few weeks and has no restrictions on incoming or outgoing connections. As you can see, the input chain has processed 11GB of packets and the output chain has processed 17GB. The forward chain, on the other hand, has not needed to process a single packet. This is because the server isn’t doing any kind of forwarding or being used as a pass-through device.

Output – This chain is used for outgoing connections. For example, if you try to ping howtogeek.com, iptables will check its output chain to see what the rules are regarding ping and howtogeek.com before making a decision to allow or deny the connection attempt.

The caveat

Even though pinging an external host seems like something that would only need to traverse the output chain, keep in mind that to return the data, the input chain will be used as well. When using iptables to lock down your system, remember that a lot of protocols will require two-way communication, so both the input and output chains will need to be configured properly. SSH is a common protocol that people forget to allow on both chains.

Policy Chain Default Behavior

Before going in and configuring specific rules, you’ll want to decide what you want the default behavior of the three chains to be. In other words, what do you want iptables to do if the connection doesn’t match any existing rules?

To see what your policy chains are currently configured to do with unmatched traffic, run theiptables -L command.

clip_image004

As you can see, we also used the grep command to give us cleaner output. In that screenshot, our chains are currently figured to accept traffic.

More times than not, you’ll want your system to accept connections by default. Unless you’ve changed the policy chain rules previously, this setting should already be configured. Either way, here’s the command to accept connections by default:

iptables --policy INPUT ACCEPT
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD ACCEPT

By defaulting to the accept rule, you can then use iptables to deny specific IP addresses or port numbers, while continuing to accept all other connections. We’ll get to those commands in a minute.

If you would rather deny all connections and manually specify which ones you want to allow to connect, you should change the default policy of your chains to drop. Doing this would probably only be useful for servers that contain sensitive information and only ever have the same IP addresses connect to them.

iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP

Connection-specific Responses

With your default chain policies configured, you can start adding rules to iptables so it knows what to do when it encounters a connection from or to a particular IP address or port. In this guide, we’re going to go over the three most basic and commonly used “responses”.

Accept – Allow the connection.

Drop – Drop the connection, act like it never happened. This is best if you don’t want the source to realize your system exists.

Reject – Don’t allow the connection, but send back an error. This is best if you don’t want a particular source to connect to your system, but you want them to know that your firewall blocked them.

The best way to show the difference between these three rules is to show what it looks like when a PC tries to ping a Linux machine with iptables configured for each one of these settings.

Allowing the connection:

clip_image005

Dropping the connection:

clip_image006

Rejecting the connection:

clip_image007

Allowing or Blocking Specific Connections

With your policy chains configured, you can now configure iptables to allow or block specific addresses, address ranges, and ports. In these examples, we’ll set the connections to DROP, but you can switch them to ACCEPT or REJECT, depending on your needs and how you configured your policy chains.

Note: In these examples, we’re going to use iptables -A to append rules to the existing chain. iptables starts at the top of its list and goes through each rule until it finds one that it matches. If you need to insert a rule above another, you can use iptables -I [chain] [number] to specify the number it should be in the list.

Connections from a single IP address

This example shows how to block all connections from the IP address 10.10.10.10.

iptables -A INPUT -s 10.10.10.10 -j DROP

Connections from a range of IP addresses

This example shows how to block all of the IP addresses in the 10.10.10.0/24 network range. You can use a netmask or standard slash notation to specify the range of IP addresses.

iptables -A INPUT -s 10.10.10.0/24 -j DROP

or

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

Connections to a specific port

This example shows how to block SSH connections from 10.10.10.10.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

You can replace “ssh” with any protocol or port number. The -p tcp part of the code tells iptables what kind of connection the protocol uses.  If you were blocking a protocol that uses UDP rather than TCP, then -p udp would be necessary instead.

This example shows how to block SSH connections from any IP address.

iptables -A INPUT -p tcp --dport ssh -j DROP

Connection States

As we mentioned earlier, a lot of protocols are going to require two-way communication. For example, if you want to allow SSH connections to your system, the input and output chains are going to need a rule added to them. But, what if you only want SSH coming into your system to be allowed? Won’t adding a rule to the output chain also allow outgoing SSH attempts?

That’s where connection states come in, which give you the capability you’d need to allow two way communication but only allow one way connections to be established. Take a look at this example, where SSH connections FROM 10.10.10.10 are permitted, but SSH connections TO 10.10.10.10 are not. However, the system is permitted to send back information over SSH as long as the session has already been established, which makes SSH communication possible between these two hosts.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

Saving Changes

The changes that you make to your iptables rules will be scrapped the next time that the iptables service gets restarted unless you execute a command to save the changes.  This command can differ depending on your distribution:

Ubuntu:

sudo /sbin/iptables-save

Red Hat / CentOS:

/sbin/service iptables save

Or

/etc/init.d/iptables save

Other Commands

List the currently configured iptables rules:

iptables -L

Adding the -v option will give you packet and byte information, and adding -n will list everything numerically. In other words – hostnames, protocols, and networks are listed as numbers.

To clear all the currently configured rules, you can issue the flush command.

iptables -F

Taken From: http://www.howtogeek.com/177621/the-beginners-guide-to-iptables-the-linux-firewall/

Friday, February 7, 2014

Sainsmart 2-Channel 5V Relay - Arduino / Raspberry Pi

Introduction

clip_image002

The Arduino Relay module allows a wide range of microcontroller such as Arduino, Raspberry Pi, AVR ,PIC, ARM with digital outputs to control larger loads and devices like AC or DC Motors, electromagnets, solenoids, and incandescent light bulbs. This module is designed to be integrated with 2 relays that it is capable of control 2 relays.The relay shield use one QIANJI JQC-3F high-quality relay with rated load 7A/240VAC,10A/125VAC,10A/28VDC.The relay output state is individually indicated by a light-emitting diode.

Features

  • Model: SRD-05VDC-SL-C
  • Number of Relays: 2
  • Control signal: TTL level
  • Rated load: 7A/240VAC 10A/125VAC 10A/28VDC
  • Contact action time: 10ms/5ms

Pin definition

clip_image004

  • COM - Common pin: This is source pin, that starts connected to NC, and connects to NO when you apply 0v / GND (active low)
  • NC (Normally Closed): in which case NC is connected with COM when INT1 is set low and disconnected when INT1 is high;
  • NO (Normally Open): in which case NO is disconnected with COM1 when INT1 is set low and connected when INT1 is high.
  • INT 1- Relay 1 control port: changes from the COM–>NO to the COM–>NC when you apply 0v / GND (active low)
  • INT 2- Relay 2 control port: changes from the COM à NO to the COM à NC when you apply 0v / GND (active low)

Video Explaination

Usage with Arduino

clip_image005

Example Code

int Relay = 12;

void setup()
{
    pinMode(Relay, OUTPUT); //Set Pin12 as output
}

void loop()
{
    digitalWrite(Relay, HIGH); //Turn off relay
    delay(2000);
    digitalWrite(Relay, LOW); //Turn on relay
    delay(2000);
}

Videos

How to buy

 

Based On:

Tuesday, February 4, 2014

Share a VM on VMWare Workstation (aka Server Mode)

The virtual machine sharing service is not available in VMWare Workstation 8

Posted on April 16, 2012 by Ben

I wanted to share a VM, but this error message appeared when doing so:

clip_image002

The virtual machine sharing service is not available.

Solution

Changing the TCP Port that VMWare Workstation uses for the Shared VMs feature did the trick!

First startup VMWare Workstartion as an admin, otherwise you don’t have sufficient permissions;

clip_image004

Started as administrator:

clip_image006

Stop the service first, by hitting the “Disable Sharing” button. Then change the port number, and start the the sharing service again. I changed it to 242;

clip_image008

Before sharing a VM, I changed the location where all shared VMs are located. Because I wanted VMs on a second SSD.

clip_image010

Share a VM by moving  a machine into the Shared VMs container in the Library;

clip_image012

The Share VM Wizard starts. Transfer the VM to the “Shared Virtual Machines” directory (the one I changed a minute ago);

clip_image014

clip_image015

Adding a user for remote access (this is a windows user, but it can´t be you current user)

ScreenShot019

ScreenShot020

ScreenShot021

ScreenShot022

On your local firewall you must allow the following TCP Ports:

  • HTTPs: TCP port 242 (in this case)
  • MKS: TCP port 902 (without this it doesn´t display the remote VM desktop)

Now connect to the machine where the VM is stored using VMware Workstation 8 on another machine. But specify the port name we just changed!

clip_image017clip_image019

Maybe you have to add permissions on the remote VM server, but the above should solve the “The virtual machine sharing service is not available” issue.

ONE THOUGHT ON “THE VIRTUAL MACHINE SHARING SERVICE IS NOT AVAILABLE IN VMWARE WORKSTATION 8”

Based On: http://esense.be/33/2012/04/16/the-virtual-machine-sharing-service-is-not-available-in-vmware-workstation-8/

Multiple Remote Desktop Sessions in Windows

Enable Concurrent Desktop Sessions in Windows

clip_image001

By Jose Vilches on January 6, 2012

Professional and Ultimate editions of Windows come with a built in Remote Desktop (RDP) feature that allows you to access your machine remotely while away from home or the office. Unfortunately, it is limited by default to one concurrent user per session, meaning that if someone remotely connects to the computer, whoever was logged in at the moment will be automatically logged off, even if the user is physically at the computer.

This is not a technical limitation but rather a licensing one. Case in point, Remote Desktop in server editions of Windows by default supports two concurrent connections to remotely troubleshoot or administer a computer. More users can connect simultaneously, too, as long as the machine can handle it with the resources it has available and you have the required client access licenses for that particular server.

However, there are a few reasons why concurrent sessions would come in handy for power users not necessarily running a server. For example, if you have a dedicated Media Center PC running in the living room, you'll be able to remotely access all files on the machine without interrupting the person watching TV.

Or if you are sharing a computer with other users, concurrent Remote Desktop sessions will allow more than one person use that system under a different or even the same user account, without kicking each other off. By patching a file called termsrv.dll, located in %SystemRoot%System32, this is possible in all editions of Windows 7, Windows Vista and Windows XP.

clip_image003

Download: UniversalTermsrvPatch_20090425.zip (zip File, 66 KB, mirror #2 mirror #3)

Fortunately for us, Internet user DeepXW already did all the dirty work a while ago and posted his Universal Termsrv.dll Patchfor anyone to get their hands on. Simply download and unzip the file, then run the corresponding file as administrator (right-click the exe file and select Run as Administrator). For 32-bit systems use UniversalTermsrvPatch-x86.exe and for 64-bit versions of Windows use UniversalTermsrvPatch-x64.exe.

You should see a window like the one above where you can patch termsrv.dll to remove the Concurrent Remote Desktop sessions limit and restore the original file at any time (a backup file is located at 'windowssystem32termsrv.dll.backup'). After applying the patch, restart your system and you are ready to go.

clip_image004

To test it out simply leave a session open on to the PC where you applied the patch, then from another machine try and connect to the computer remotely. If all goes well both users will be logged on and active.

Taken From: http://www.techspot.com/guides/485-windows-concurrent-sessions/

Sunday, January 26, 2014

Share Your Internet via Wifi – Windows 8 (Tablet / Desktop)

How to Share Your 3G/4G Internet Connection With Other Devices From Your Windows Tablet

clip_image001

I’m sure that we are not the only people who carry around multiple devices and only have 1 or 2 mobile data plans. If the device carrying your data plan happens to be your Windows tablet, start celebrating. We’ll show you how you can share that data goodness with your other devices.

Note: The following method was tested and confirmed working on a Samsung ATIV Tab.

How to Share Your Internet Connection With Other Devices From Your Windows Tablet

Press the Windows + R key combination to bring up a run box, type ncpa.cpl and hit enter.

clip_image003

When your network connections control panel window opens, right-click on your Wireless network adapter and select properties from the context menu.

clip_image005

Now switch over to the Sharing tab and allow other devices to use your machine’s internet by selecting the first checkbox and then unchecking the second before clicking on the OK button.

clip_image007

Now press the Win + X keyboard combination to bring up the WinX menu in the bottom left of your screen. From here you will need to launch an administrative command prompt, or PowerShell prompt if you happen to be running Windows 8.1.

clip_image009

The first thing we need to do is set up the wireless network, which is done using the netsh command like so:

netsh wlan set hostednetwork mode=allow ssid=”How-To Geek” key=”Pa$$w0rd$”

Where ssid is the name of your network and key is the password you want users to connect with. It is also worth mentioning that the access point is created with WPA2-PSK (AES) encryption.

clip_image011

Finally we need to start broadcasting our newly created network so that our other devices can pick it up.

netsh wlan start hostednetwork

clip_image013

That’s all there is to it. When you are done, you can simply run the following command to stop the network.

netsh wlan stop hostednetwork

clip_image015

Taken From: http://www.howtogeek.com/167504/how-to-share-your-3g4g-internet-connection-with-other-devices-from-your-windows-tablet/

Friday, January 24, 2014

Be a Mechanic - With Android and Linux

"Check Engine Soon"—that little orange light on your car's instrument panel is possibly one of the more annoying things about modern automobiles. Ever had it pop on during a trip and wonder whether it was just something mundane, like your gas cap being loose, or whether it's something deathly serious and a piston could come shooting out the side of your engine block at any time? Well, thanks to an inexpensive little piece of hardware and an Android tablet, I'll help you decode that little orange light in your car.

The human race has had automobiles for more than 100 years now, but we've had computer monitors and control engine operation only for around 30 years or so. The first computer controls were primitive, hard to work with and expensive. Each automotive manufacturer had its own computer systems, protocols, connectors and trouble-code definitions. I worked as a mechanic during the late 1980s and early 1990s, and I remember those systems well—not fondly, of course, but well. Some of those systems required you to do crazy things like jump a connector with a piece of wire, then turn the key on and off three times and observe the Check Engine light as it flashed on and off. You'd have to count the number of flashes accurately and then look up the "trouble code" that flashed in a service manual, and you might get a clue as to what was wrong with the vehicle. Those early diagnostic systems made seasoned mechanics who were used to troubleshooting the machinery of an engine rather than its electronics shudder with trepidation. Over time, the manufacturers made the systems better. The Society of Automotive Engineers made the connector, protocol and trouble codes a standard in 1996, and with that, we've got the system in place today: OBD-II (Onboard Diagnostics, 2nd revision).

OBD-II Basics

Any car sold in the United States after 1996 uses the OBD-II computer system, so the majority of cars on the road today have this system. Thanks to OBD-II's standardization and age, lots of tools have been released to work with the system. Because OBD-II defines the connector and protocol, that means you need both a hardware device to interface with the connector and some software to speak the protocol.
The hardware I use is the Soliport ELM327 Bluetooth OBD-II Scanner (see the Amazon link in the Resources section of this article). It's a very inexpensive (less than $20) dongle that plugs in to the OBD-II port under your dashboard, draws its power directly from the car and converts the OBD-II-specific signals to serial-over-Bluetooth. There are other OBD-II scan tools on the market. Some are just plain-old cables to hook straight into a computer's RS-232 serial port, and others are as fancy as full-on bridges to a Wi-Fi network. And, there are other manufacturers of Bluetooth OBD-II scan tools, but just make sure whatever you get is based on the ELM327 chipset.

Another piece of hardware you'll need is a computer of some kind. Any Linux-powered laptop with Bluetooth will suffice, but the form factor is kind of clunky when you're dealing with a cramped automotive cockpit. (See the Using a Laptop to Scan Your OBD-II System sidebar if you want to use a laptop.) My personal preference is to use an Android device to interpret the signals coming from the OBD-II system in the car. I use a Nexus 7 tablet for this, but any Android device should work. I've used a Motorola Droid RAZR and the very first HTC G1 Android phone for this as well.

clip_image001
Figure 1. Tools of the Trade: a Nexus 7 Tablet and a Soliport Bluetooth OBD-II Scanner

Software-wise, my choice for this on Android is Torque, an excellent app that not only can collect all the OBD-II stats, but also graph and log them in myriad ways. (There's also a free version, Torque Lite, that has a fair deal of the functionality of the full version.) Grab either one from the Google Play store.
Note that this solution is for read-only access to the OBD-II system in the car. You can't modify the running parameters of the vehicle with this adapter, unfortunately (or fortunately, perhaps, as it's very easy to make a mess of things). Flashing your car's computer with a new fuel curve or ignition timing map is a nontrivial exercise that requires an adapter with different voltage levels and different software. So, don't worry about breaking your car with this solution—you're just "peeking under the hood".

Using a Laptop to Scan Your OBD-II System

Although it's possible to use a laptop to do the same duty as an Android device, it's a little more involved, as the Bluetooth protocol stack on a Linux laptop requires some more massaging than simply pairing up an Android device. However, if you're comfortable with the command line and Bluetooth commands like rfcomm, it's absolutely possible, and there are some good OBD-II packages like pyobd and openobd. You won't get some of Torque's value-add features, like accelerometer and GPS integration, but you still can use the laptop for diagnostic purposes and data logging.

Using an Old Nokia Internet Tablet to Scan Your OBD-II System

In the December 2008 issue of LJ, I wrote an article called "Hacking the Nokia Internet Tablet", and I talked about ways to hack and extend the Nokia N800 tablet. It turns out there's an application for the N800 and N810 called Carman that was designed to work with wired OBD-II adapters, but it works just fine with the Soliport Bluetooth Scanner. Carman used to be in the Maemo repositories. I no longer have a working N800, so I can't check that now, but when my N800 did work, I used it a few times to diagnose the car. So, if you've got a Nokia device sitting in a drawer gathering dust, pull it out and put it to use!

Using Torque and the Soliport Bluetooth Adapter

The Soliport adapter comes with a little CD-ROM in the box, but it's not required for use with an Android device. To get started, you first need to find the OBD-II port in your car. In most cars sold in the United States, the port is under the dash on the driver's side of the car. Find the port, and plug the Soliport in to it.
Next, start the car, because the OBD-II port isn't powered until the car's ignition is on. (Make sure your garage door is open, please. I don't want to receive hate mail from your relatives on how you suffocated from carbon monoxide poisoning!) Next, you need to go through the standard Bluetooth pairing process to pair your Android device to the Soliport adapter. (The pairing code is 1234 if you can't find it in the instructions—coincidentally, it's the same combination that's on my luggage.)
Once you've got your Android device all paired up to the Soliport, you're ready to fire up Torque. Start Torque on your Android device, and you'll be greeted with the Torque main screen.

clip_image002Figure 2. The Torque Home Screen

Setting Up Torque

Now that you have Torque up, select the little "settings" slider on the bottom left of the screen, and select "OBD2 Adapter Settings". Set the connection type as Bluetooth, and choose the Soliport if prompted. Go back to the main settings screen and select your desired units (Imperial or Metric), and any other preferences you choose, then flip back to the Torque main screen.

Next, you're going to create a "profile" for your vehicle. Select the settings slider from the main screen as before, then select "Vehicle Profile" and "Create new profile". Then, fill in the pertinent information about your vehicle. This information is used by Torque to compute things that can be calculated, like horsepower, fuel economy and other metrics. When you're done, go back to the main screen.

Checking for Fault Codes

Let's start by doing basic diagnostics on your car. From the main screen, select Fault Codes, then press the large magnifying glass to start a scan of your car's computer for trouble codes. If your Check Engine light is on, you'll probably find your issue represented as a code here. My father's 2001 Chevy Silverado pickup was showing a Check Engine light, and I ran a quick scan on it with Torque. It resulted in a trouble code of P1416. A quick Google search of that trouble code showed that it was the Secondary Air Valve, Bank 2. It turned out that was a little smog system valve right on top of the engine, on the passenger side. Amazon.com had that particular part for $37, and we had it at his house in two days.

I had the Check Engine light on my wife's Durango pop on not long after, and I used the tool to scan her car. Her car came back with a P0440 code, which means "Evaporative Emission Control System Malfunction". I searched a bit more on the Internet and found that the most common cause of this code is a broken or mis-installed fuel filler cap. It turned out that was exactly the case—her fuel filler cap wasn't tightened all the way. I tightened the cap and cleared the code via the Torque app, and it never returned.

Getting Performance Data

Those two cases listed above more than paid for the cost of the Soliport adapter and the Torque application, but Torque can do so much more. Torque can pull data from sources other than your OBD-II sensors. It also can poll your Android device's accelerometer and GPS. This means it can do performance calculations, such as 0–60 mph time (or 0–100 kph time), 1/4 mile time or even horsepower calculations. This requires that you get your car's data entered correctly into the vehicle profile during setup time, particularly the vehicle weight (including your weight as driver, and any other stuff you may have inside the car). If you do performance testing, make sure you're doing it safely—and don't violate any laws in your locality.

However, I think one of the coolest things that Torque and the Soliport adapter can do is they can act as an auxiliary instrument panel for your car. Any bit of information that passes through the OBD-II sensors can be logged, graphed or placed on a digital dial. You can pick and choose how you want that information presented as well—including the size and position of the graphs and dials. This information can be extremely valuable, for instance, displaying the current engine manifold vacuum. As a general rule, under cruise conditions, higher manifold vacuum means higher fuel economy, so having this gauge up can be handy on long trips.
clip_image003
Figure 3. Torque's Virtual Instrument Panel

Torque also has other features, like the ability to log your data for future analysis. It also can graph that data and correlate it to your GPS position and accelerometer data. This can be useful if you happen to be an amateur racer and would like to get information about your car's performance at certain points on the racetrack. Most people won't need that ability, but it's nice to know that the developer of Torque thought that out. All the data necessary to do those calculations is there, it just needs to be glued together.

Closing

Computer control systems in cars used to be mysterious, overly complicated, finicky pieces of technological voodoo to even the most seasoned mechanic. Scan tools were proprietary and cost thousands of dollars, and mechanics needed a special tool for each car manufacturer. With the advent of OBD-II and inexpensive computers, it's now easy to de-mystify and diagnose your car. Don't let the strange terms fool you—like the computers you're already familiar with, an automobile is just a collection of technology and machinery, and you can troubleshoot it just like a computer.

Resources


Taken From: http://www.linuxjournal.com/content/be-mechanicwith-android-and-linux