How to Make Solar Charger

Here is a solar charger circuit that is used to charge Lead Acid or Ni-Cd batteries using the solar energy power. It can charge a 6 volt 4.5 Ah rechargeable battery for various applications.
Features:

  • Voltage and Current regulation
  • Over voltage cut off facilities

 Solar Charger Circuit Diagram




Main Parts used:
map of GH site


The circuit uses a 12 volt solar panel and a variable voltage regulator IC LM 317. The solar panel consists of solar cells each rated at 1.2 volts. 12 volt DC is available from the panel to charge the battery. Charging current passes through D1 to the voltage regulator IC LM 317. By adjusting its Adjust pin, output voltage and current can be regulated.

VR is placed between the adjust pin and ground to provide an output voltage of 9 volts to the battery. Resistor R3 Restrict the charging current and diode D2 prevents discharge of current from the battery. Transistor T1 and Zener diode ZD act as a cut off switch when the battery is full. Normally T1 is off and battery gets charging current.

When the terminal voltage of the battery rises above 6.8 volts, Zener conducts and provides base current to T1. It then turns on grounding the output of LM 317 to stop charging.


Diode
Zener Diode
Transistor
Voltage Regulator
Potentiometer
Resistors
Solar Panel
Lead Acid or Ni-Cd batteries


Read More

HOW TO CREATE THEMES ON UR PHONE WITH UR PERSONAL PICS

Just Follow these steps:
  • Create a new folder. Copy a theme already on your Phone you want to edit. And also copy the pics you want to use.
  • Open your file explorer. Locate the folder n rename the copied theme in that folder to .zip e.g (s2ptech.nth to s2ptech.zip) i.e rename the theme from .nth to .zip.
  • Now open your JZIPMAN locate the theme s2ptech.zip click on it, it will show a list of some files, select Option and Click on SELECT ALL .
  • Select option again and click on EXTRACT. It will take sometime. Click YES.
  • Now you can replace them with your pics. Go back to ur FILE EXPLORER
HINTS:  You can see a file name CONTACT_GRID.PNG . Delete this file and rename your own pics with dsame name i.e CONTACT_GRID.PNG or if u see a file name 'wallpaper.jpg' delete it first then rename your pics to  'wallpaper.jpg'.
The name in the theme should remains, its very important.
If its a theme with ringtone e.g nokia.mp3 Rename your desire music to nokia.mp3 but note that the higher your tone size the bigger the size of your theme.

  • After u finish everything close the file explorer. In case ur pics still remain in that folder delete them 
  • Open  JZIPMAN. 
  • Go to that folder, select all files in that folder by pressing SELECT BUTTON from your key. 
Note that there will be no changes when u re selecting them.

  • After that, Press OPTION button and Select list you will see .
  • Now Press OPTION and Select PACK BUTTON. 
  • Then it will show a path of saving files 
  • Change the (zip) to nth and  dont change other parts of name except zip to nth. 
  • Select Ok button and continue to Press yes until it stop. 
  • After it stop close the application and go to that folder u will see a theme name JZIPMAN.NTH is ur theme now you can rename it to your desire name.
Read More

HOW TO SIGN UNSIGNED APPLICATIONS ON YOUR SYMBIAN PHONE


If you want to be able to Install Unsigned Applications on your Phone, You need to get a Certificate & Key . "You must get the Key & Certificate before you can Proceed and Understand me".


Follow these steps:
1. FREE SIGNER: This will help you Sign any Application that does not want to Install on your Phone, thereby making it Installable (doesn't really HacK the phone).

  • First get the Free Signer Application from any of the links below: Click Here
  • After your download, install it. 
  • Now, open it (after the Installation), and follow me well to make sure it works confirm. Settings >>| Locate these two Informations: 


  1.  ''Sign Cert'' : Now, Click & Insert the Certificate you Downloaded from OPDA / mobiplanet.in or anywhere. 
  2. "Sign Key" : Click and Insert the Key you Downloaded. Then follow other necessary Procedures. Now, Open Free Signer again and Select "Add Task" Now browse through your files and Select the application that needs to be signed from the file browser. After that, Click “Options” and select “Add”. After Adding the Software you want to Sign, then Select ''Option'', it pops up a MENU. Now, From the pop up Menu, Select “Sign sis”. Click “Options” and Select “Go”. Thats all. 

NOTE: The Application will be Saved into the Folder where the Original file is. The Signed one would be named with _signed.

2. HELLO OX HACKING:  Hacking Phones are done for many reasons. There are many Applications for different reasons. HelloOx is one of the Numerous Phone Hacker Applications. It is used to Install UNSIGNED APPLICATIONS and also Avoid CERTIFICATE ERROR while Installing Some Applications (you know what I mean) Now, one of the easiest way to Install any Unsigned Application, Avoiding Certificate Error is to install Hello OX. SIGNING HELLO OX Download HelloOX from sharemobile. Just search for it from http://sharemobile.ro/search.php In the Search Box put HelloOX Then select the one you want. If you download the Unsigned one, just

In the Search Box put HelloOX Then select the one you want. If you download the Unsigned one, just Sign it following the Process I stated above for signing Other Applications and Dont Forget you must have your KEY and CERT. I would advise you to Download the Already Signed One at sharemobile from the Search Results. Now install and Run the Signed HelloOX on your mobile. This will automatically install RomPatcher and Modo (this is optional, but you gotta Install them). After Installing it, Open '' RomPatcher'' you'll see Installserver_FP2 and Open4 all. Press Options and Select ''APPLY'' and choose ''PATCH'' (IE) Apply PATCH for both Installserver_FP2 and Open4 all. That's all. You can now Install any Unsigned Application without Certificate Problem. NOTE: whenever you Switch Off / your Phone goes OFF and you put it on, you'll have to Open RomPatcher and ''Apply Patch'' for both of them again. You do it anytime you Restart your PHONE.
Read More

HOW TO GET CERTIFICATE & KEY FOR SYMBIAN APPLICATION


Just Follow these steps:

  • Find your Mobile phone's IMEI Number. You can get it by dialing *#06# on your phone.
  • Create an account at http://cer.opda.cn/en/?module=index&action=register 
  • Now login to your account .
  • Click on “Apply For CERT”. 
  • Fill in tha requested details ( carefully submit IMEI details) and click on “Submit application”. 
  • Now under “MY CERTIFICATE” tab, a pending status will be shown.


All you need to do is to keep checking your account to see if CERTIFICATE and KEY have been received or not. It might take few hours to receive certificate and key, however, I will advise you to wait at least for a day in case you don’t receive the file within some hours.
Or better still, submit your IMEI at http://mobiplanet.in/showsoft.php?dir=s60v3_softwares.
And keep checking your MAIL's inbox for it. When you Receive it, Just Download it to your Phone.
Read More

How to Download YOUTUBE videos using opera mini

2 Comments
Mobile phone users facing too much problems, such as Buffering,connection error,lower data speed......


Today i am here with a solution for all these difficulties.... 

A Happy News To mobile youtube users, that you can Download Youtube videos.....from your phone using Opera mini web browser.....

Here is the trick.......

  • Copy the the script shown below.

javascript:d=document;s=d.createElement("script");s.src="https://sites.google.com/site/dascollect/s2p/ytube.js";d.body.appendChild(s);void(0); 

  • Goto Bookmark on Opera Mini.


  • Paste the copied Content to Address bar without any www/http use the title as s2ptech .


  • Save the bookmark. Thats it.....


  • Now go to Youtube.com. Search for any video that you want to download.


  • Click on Desktop view.


  • After that take the bookmark s2ptech,click on it.
  • Now you can see a download button near the share button....click on it 

and Enjoy.....

Read More

How to Charge your Mobile Phone using 1.5 volt pen cells.

Here is an ideal Mobile charger using 1.5 volt pen cells to charge mobile phone while traveling. It can replenish cell phone battery three or four times in places where AC power is not available.
Most of the Mobile phone batteries are rated at 3.6 V/500 mA. A single pen torch cell can provide 1.5 volts and 1.5 Amps current. So if four pen cells are connected serially, it will form a battery pack with 6 volt and 1.5 Amps current. When power is applied to the circuit through S1, transistor T1 conducts and Green LED lights.

Main Parts:



map of GH site

When T1 conducts T2 also conducts since its base becomes negative. Charging current flows from the collector of T1. To reduce the charging voltage to 4.7 volts, Zener diode ZD is used. The output gives 20 mA current for slow charging. If more current is required for fast charging, reduce the value of R4 to 47 ohms so that 80 mA current will be available. Points A and B are used to connect the charger with the mobile phone. Use suitable pins for this and connect with correct polarity.

Mobile Phone Charger Diagram



Note: In above circuit diagram, unit of Resistances are written "R" instead of "Ohm".

Thats it. Enjoy...

Zener
Capacitor
BJT
BJT
Battery
LED
Resistors
Read More

How to Resize Partition in Windows 7 and Vista


Windows 7 and Vista include a built-in functionality in Disk Management to shrink and expand partitions.
To get to this utility, open up Control Panel, and type in partition into the search box.. you’ll immediately see the link show up:



Shrink a Partition
In the Disk Management screen, just right-click on the partition that you want to shrink, and select “Shrink Volume” from the menu.

In the Shrink dialog, you will want to enter the amount you want to shrink by, not the new size. For example, if you want to shrink your 50gb partition by roughly 10gb so that it will now be roughly 40gb, enter 10000 into the box:

Extend a Partition
In the Disk Management screen, just right-click on the partition that you want to shrink, and select “Extend Volume” from the menu.
On this screen, you can specify the amount that you want to increase the partition by. In this case, I’m going to extend it back to the roughly 50GB size that it was before.
Note that the extend partition feature only works with contiguous space.

Read More

How to make Windows 7 Genuine without any software


The first thing you’ll want to do is check how many days are left in your trial period. You can do this by right-clicking Computer and choosing Properties…
Windows 7 Right-Click Computer
At the bottom of this window you’ll see how many days are left to activate (29 in my case since I installed this box yesterday).

Now to actually perform the hack that will extend the trial mode, you’ll want to find Command Prompt in the start menu (or search for it), and then right-click on it and choose Run as administrator. (very important)

Next you’ll simply type in this command:
slmgr -rearm

Within a few seconds you’ll normally see this dialog show up, saying that the command has completed successfully, at which point you’ll want to reboot.

Checking the system properties again shows that I now have 30 days left to activate.

Of course you’d normally want to do this near the end, probably on the last day before activation. I’m pretty sure that you can even perform this trick after the 30-day trial expires,
Read More

How To Know your Nokia Mobile is Original or Not.


Nokia is one of the largest selling phones across the globe. Most of us own a Nokia phone but are unaware of it’s originality. Are you keen to know whether your Nokia mobile phone is original or not? Then you are in the right place and this information is specially meant for you. Your phones IMEI (International Mobile Equipment Identity) number confirms your phone’s originality.



  • Press the following on your mobile *#06# to see your Phone’s IMEI number(serial number).
  • Then check the 7th and 8th numbers
  • Phone serial no. x x x x x x ? ? x x x x x x x
  • IF the Seventh & Eighth digits of your cell phone are 02 or 20 this means your cell phone was assembled in Emirates which is very Bad quality
  • IF the Seventh & Eighth digits of your cell phone are 08 or 80 this means your cell phone was manufactured in Germany which is fair quality
  • IF the Seventh & Eighth digits of your cell phone are 01 or 10 this means your cell phone was manufactured in Finland which is very Good
  • IF the Seventh & Eighth digits of your cell phone are 00 this means your cell phone was manufactured in original factory which is the best Mobile Quality
  • IF the Seventh & Eighth digits of your cell phone are 13 this means your cell phone was assembled in Azerbaijan which is very Bad quality and also dangerous for your health.

Read More

How to change font style in Facebook Chat

3 Comments

How to do the following in FaceBook Chat : make text Bold , Italics , Underline.
The code to do all this is given below.


For making the text Bold:
type your words between * *(two stars ) will automatically turns into bold.
Example : You write
Welcome to *S2P Tech*
will turns to
Welcome to S2P Tech


For underlined Text
type between _ _(two underscores) will automatically turns into underlined text
Example:
Welcome to _S2P Tech_
Turns to
Welcome to S2P Tech


For writing Bold+Underline:
Whatever you type between *_ _* will automatically turns into Bold+Underline
Example:
Welcome to *_www.s2ptech.blogspot.com_*
Turns to
Welcome to www.s2ptech.blogspot.com
Read More

How to compress data upto 100 times


How effective is it?
By this method I converted NFS UNDERGROUND 2 which is somewhat around 2 Gb to 21 Mb. And same is the case with everything important I wanted to save.

How did I do it?

I used a software named KGB Archiver.


About KGB archiver: KGB Archiver , an open source compression tool like 7zip and UHARC with an unbelievably high compression rate .It uses AES-256 encryption (one of the strongest encryption known for man) to encrypt archives . The disappointing thing with KGB Archiver is due to its high compression rate its minimum hardware requirement is high ( recommend processor with 1,5GHz clock and 256MB of RAM ) and compression and decompression process is time consuming.

Its strength: Very high compression power with very accurate results and no loss of data.

Its weekness: Due to high compression , the time required to compress and decompress the file is high. High system requirement

From where can you download this software.? Click Here
Read More

How to make AM Radio using Op-Amp



It is a radio made with an op amp. This is just as accidental and simplistic . There is only about a handful of parts you need . So if you feel like making your own simple radio for field reception.
Step 1: Parts you will need





Parts used in this Project:

  • x1 LM386 op amp IC chip.
  • x2 1000 microfarad capacitors (any capacitor works but it's louder with these).
  • x1 100 microfarad capacitor.
  • x1 8 ohm speaker.
  • x1 9 volt battery.
  • x1 project board.
  • some wire (I used about a foot and a half).
  • Optional - a wire parabola (such as a mini fan cage, a colander, etc.)
And that's it. Of course this isn't a crystal clear signal, but I think you'll be surprised how easily you can understand the voices and the music is pretty clear too, there is some minor static but after listening for a while it's barely noticeable.
Step 2: Building in 1 step!





Simply put this circuit doesn't take much to make. It surprised and annoyed me because it gave me a radio signal when I was trying to make a backpack boombox circuit, so I fiddled with this and I present it to you here. And here are the 4 steps to creating this circuit.
(Please realize that when I talk about the pins I refer to the pins in counter-clockwise order from the clocking mark (probably an indent or circular mark at one end of the chip near pin 1. Pin 1 is the most counter-clockwise going down the left side to pin 4 and continuing at the bottom of the other side at pin 5 going up the right side to pin 8.)

1. Plug in your op amp and add a jumper wire from pin 6 to power and a jumper from pin 4 to ground.

2. Plug another jumper wire from pin 2 to ground and plug your antenna into pin 3.

3. Plug your 100 microfarad capacitor's positive side into ping 7 and the negative side into ground. Plug one your 1000 microfarad capacitor's positive side into pin 1 and the negative side into pin 8. The other 1000 microfarad capacitor's positive side into pin 5 and the negative side into a blank space on your board. Plug your speaker's positive side to the last capacitor's negative side and the negative side of your speaker to ground.

4. Plug in your battery's terminals to their respective rails (red to power, black to ground)
 and then (if you have a switch added) turn it on and simply move your antenna wire around to get your signals. If you want a good signal using a metal fan cage works very well.
Read More

How to make AM Transmitter

You are going to build an AM radio transmitter AND you will be shown how it works. When you finish your radio, it will look something like mine in the picture above.


I have attached the PDF file in the last step to this Inst'able for those without a pro membership.
Step 1: Parts and Prep


Parts and Prep (Small Stuff)


These are the small components you will need
  • 555 timer chip
  • NPN transistor
  • two #103 capacitors (0.01 microfarads or 10,000 picofarads)
  • #102 capacitor (0.001 microfarads or 1,000 picofarads)
  • some short wires
  • two 1 Kilohm resistors
  • 10 Kilohm resistor
  • 1/8 inch (3.5 millimeter) female audio jack (yours may have more or less than three
  •     wires, but it must have at least two)
  • 5 Kilohm potentiometer 
Parts and Prep (Bigger Stuff)

These are the Bigger components you will need

  • 1/8 inch (3.5 millimeter) male audio cable
  • AM radio receiver
  • Antenna. Yours doesn't have to be made out of a pop can, but the pop can works
  • Breadboard
Step 2: Schematic Diagram    
Schematic!!    
Step 3: Test your radio


Testing 1, 2, 3...


To test the AM radio transmitter, simply set the antenna next to your AM radio receiver (Alarm clock) tuned to approximately 600 KHz. Then play with the potentiometer until you can hear your music on your radio. The frequency generated by this devise will be anywhere from 100-480 Kilohertz if you used all the correct component values.If you hear weird sounds when you turn the potentiometer (and do not hear the audio signal) That means that your radio is working, but your audio signal needs to be configured. try turning the volumed of your audio signal up.


How does this work?


How... WHY?!?

The audio signal is controlling when the radio signal is being transmitted. this is called amplitude modulation (See picture above).

Extra Info.

You are transmitting at a low frequency that can be heard at higher AM frequencies. Lets say I transmit music at a base frequency of 300 Kilohertz (KHz) This music can be heard at the frequencies of 300KHz, 600KHz, 900KHz, 1200KHz. (etc...) This is called harmonics.
When the radio receiver's picks up a 300KHz signal on a 900KHz band, the signal is weaker than if you were to pick it up on the 600KHz band. This is why harmonics are only useful to a degree.
  
Read More

How to read RFID Tags with an Arduino


You'll learn to read an RFID tag using the Innovations ID-12 reader and an Arduino Duemilanove.



Step 1: Let's Get Started!



We'll be using the ID Innovations ID-12 to perform the task of reading an RFID tag. At a minimum, it requires +5V, ground, and a digital pin (on the Arduino) that we will utilize for serial communication.

The ID-12 operates at 9600bps and has an LED output pin. This LED output is great! We can use this to verify if the ID-12 is reading the tag even before it is connected to the Arduino!

The ID-12 has unusual pin spacing. Pick up the breakout board from SparkFun (SEN-08423 ) to make it easily fit on your breadboard.

All of ID Innovations readers read at a frequency of 125 kHz. Any 125 kHz RFID tag will do.
Step 2: Circuit Diagram


Okay, before we even start messing with the Arduino, let's get the ID-12 wired up. Follow the wiring layout above using your breadboard and jumpers to make the necessary connections.

I did not show an LED connected to the LED pin (10), but it's a good idea to use this at first for read verification. Also, I prefer to insert a small capacitor (100nF) between +5V and ground to keep the power clean.

Once the ID-12 has been connected it's time to bring out the Arduino! Connect TX (D0, Pin 9) from the ID-12 to RX on the Arduino.
Step 3: How to Code





This first sketch will test to make sure the ID-12 is working correctly. The Arduino waits for serial comms and prints the output. We can see that output using the serial monitor. The output may look like junk, but it is, in fact, the unique ID for our RFID tag. We will use this ID in the next sketch.

Copy the code below and paste it into a new sketch. Verify, compile, and upload. When it has finished uploading, pass the RFID tag over the reader. If you have the LED pin on the ID-12 connected to an LED, you should see the LED blink. This indicates a succesful read. If the Arduino is wired and working correctly, you should see 12 hexadecimal characters in the serial monitor. This is the tag's unique identifier.

I should mention that you MUST disconnect the Arduino RX pin while uploading the sketch, otherwise, you will get an error.
/* RFID ID12 */


char val = 0; // variable to store the data from the serial port


void setup() {
Serial.begin(9600); // connect to the serial port
}


void loop () {
// read the serial port
if(Serial.available() > 0) {
val = Serial.read();
Serial.print(val, BYTE);
}
}
Step 4: Final Sketch


So, at this point, you should have a unique identifier for your RFID tag. We are going to insert it into the attached code file. I'm not going to explain how the code works. I leave that as an exercise for you.

Take your unique identifer, slice off the last two characters so you are left with 10 characters. For example, I read 2900940E9526 as my identifier. So, I will use 2900940E95. 26 is the ID's checksum. Don't worry about this. Insert your identifier in the code where it says [INSERT IDENTIFIER HERE]. You can also add your name in the [ADD YOUR NAME HERE].

Remember when we connected ID-12 pin 9 to the Arduno RX. We're going to free up the RX pin and relocate that connection to digital pin 4. That's it!

Verify, compile, upload, and run. Open the serial monitor and scan your card. You should see something like my output.

Now, We have a working RFID reader!

FUTURE:
If we dig through the code, we will see 'futureOutput' defined for pin 12. This pin goes high for two seconds after a successful, authorized card read. It can be used to control a relay to perform a number of many different things. That is up to you!

Also, at the end of the code is the 'unlock()' function. This defines what happens during the unlock process. Code could be added here to initiate another sequence, perhaps X10 protocol to control a home appliance? You may see that from me in the future *WINK WINK*.

(IGNORE THE NEXT/LAST STEP. The editor freezes when I try to edit it, hanging on 'UPDATING'. So, it's staying there until I figure out how to get rid of it.)

RFID_DigiOut_FinalRev.pde

Note: your downloaded file is in "tmp" extension. Convert ".tmp" to ".pde" by rename this file.
Step 5: Final Results


So, at this point, you should have a unique identifier for your RFID tag. We are going to insert t into the code below. I'm not going to explain how the code works. I leave that as an exercise for you.

Okay, remember when we connected ID-12 pin 9 to the Arduno RX. We're going to free up the RX pin and relocate that connection to digital pin 4. That's it!

Now, take your unique identifer, slice off the last two characters so you are left with 10 characters. For example, I read 2900940E9526 as my identifier. So, I will use 2900940E95. 26 is the ID's checksum. Don't worry about this. Insert your identifier in the code below where it says [INSERT IDENTIFIER HERE]. You can also add your name in the [ADD YOUR NAME HERE].

/**
 * RFID Access Control
 *
 * Some of this code was inspired by Tom Igoe's RFID tutorial
 * From the ID-12 example code on the Arduino Playground
 * And HIGHLY based on Jonathan Oxer's project at:
 * http://www.practicalarduino.com/projects/medium/rfid-access-control
 */


// Set up the serial connection to the RFID reader module. In order to
// keep the Arduino TX and RX pins free for communication with a host,
// the sketch uses the SoftwareSerial library to implement serial
// communications on other pins.
#include


// The RFID module's TX pin needs to be connected to the Arduino.


#define rxPin 4
#define txPin 5


// Create a software serial object for the connection to the RFID module
SoftwareSerial rfid = SoftwareSerial( rxPin, txPin );


// Set up outputs
#define futureOutput 12
#define ledPin 13


// Specify how long the output should be held.
#define unlockSeconds 2


// The tag database consists of two parts. The first part is an array of
// tag values with each tag taking up 5 bytes. The second is a list of
// names with one name for each tag (ie: group of 5 bytes). You can expand
// or shrink this as you see fit. Tags 2 and 3 are only there for example.
char* allowedTags[] = {
"[INSERT IDENTIFIER HERE]", // Tag 1
"2900940E95", // Tag 2
"ABC123DE45", // Tag 3
};


// List of names to associate with the matching tag IDs
char* tagName[] = {
"[ADD YOUR NAME HERE]", // Tag 1
"Mark Trussell", // Tag 2
"NAME 3", // Tag 3
};


// Check the number of tags defined
int numberOfTags = sizeof(allowedTags)/sizeof(allowedTags[0]);


int incomingByte = 0; // To store incoming serial data


/**
* Setup
*/
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
pinMode(futureOutput, OUTPUT);
digitalWrite(futureOutput, LOW);


Serial.begin(9600); // Serial port for connection to host
rfid.begin(9600); // Serial port for connection to RFID module


Serial.println("RFID Reader Initialized");
}


/**
* Loop
*/
void loop() {
byte i = 0;
byte val = 0;
byte checksum = 0;
byte bytesRead = 0;
byte tempByte = 0;
byte tagBytes[6]; // "Unique" tags are only 5 bytes but we need an extra byte for the checksum
char tagValue[10];


// Read from the RFID module. Because this connection uses SoftwareSerial
// there is no equivalent to the Serial.available() function, so at this
// point the program blocks while waiting for a value from the module
if((val = rfid.read()) == 2) { // Check for header
bytesRead = 0;
while (bytesRead < 12) { // Read 10 digit code + 2 digit checksum
val = rfid.read();


// Append the first 10 bytes (0 to 9) to the raw tag value
if (bytesRead < 10)
{
tagValue[bytesRead] = val;
}


// Check if this is a header or stop byte before the 10 digit reading is complete
if((val == 0x0D)||(val == 0x0A)||(val == 0x03)||(val == 0x02)) {
break; // Stop reading
}


// Ascii/Hex conversion:
if ((val >= '0') && (val <= '9')) {
val = val - '0';
}
else if ((val >= 'A') && (val <= 'F')) {
val = 10 + val - 'A';
}


// Every two hex-digits, add a byte to the code:
if (bytesRead & 1 == 1) {
// Make space for this hex-digit by shifting the previous digit 4 bits to the left
tagBytes[bytesRead >> 1] = (val | (tempByte << 4));


if (bytesRead >> 1 != 5) { // If we're at the checksum byte,
checksum ^= tagBytes[bytesRead >> 1]; // Calculate the checksum... (XOR)
};
} else {
tempByte = val; // Store the first hex digit first
};


bytesRead++; // Ready to read next digit
}


// Send the result to the host connected via USB
if (bytesRead == 12) { // 12 digit read is complete
tagValue[10] = '\0'; // Null-terminate the string


Serial.print("Tag read: ");
for (i=0; i<5; i++) {
// Add a leading 0 to pad out values below 16
if (tagBytes[i] < 16) {
Serial.print("0");
}
Serial.print(tagBytes[i], HEX);
}
Serial.println();


Serial.print("Checksum: ");
Serial.print(tagBytes[5], HEX);
Serial.println(tagBytes[5] == checksum ? " -- passed." : " -- error.");


// Show the raw tag value
Serial.print("VALUE: ");
Serial.println(tagValue);


// Search the tag database for this particular tag
int tagId = findTag( tagValue );


// Only fire the strike plate if this tag was found in the database
if( tagId > 0 )
{
Serial.print("Authorized tag ID ");
Serial.print(tagId);
Serial.print(": unlocking for ");
Serial.println(tagName[tagId - 1]); // Get the name for this tag from the database
unlock(); // Fire the strike plate to open the lock
} else {
Serial.println("Tag not authorized");
}
Serial.println(); // Blank separator line in output
}


bytesRead = 0;
}
}


/**
* Fire the relay to activate the strike plate for the configured
* number of seconds.
*/
void unlock() {
digitalWrite(ledPin, HIGH);
digitalWrite(futureOutput, HIGH);
delay(unlockSeconds * 1000);
digitalWrite(futureOutput, LOW);
digitalWrite(ledPin, LOW);
}


/**
* Search for a specific tag in the database
*/
int findTag( char tagValue[10] ) {
for (int thisCard = 0; thisCard < numberOfTags; thisCard++) {
// Check if the tag value matches this row in the tag database
if(strcmp(tagValue, allowedTags[thisCard]) == 0)
{
// The row in the database starts at 0, so add 1 to the result so
// that the card ID starts from 1 instead (0 represents "no match")
return(thisCard + 1);
}
}
// If we don't find the tag return a tag ID of 0 to show there was no match
return(0);
}
Thats it. Enjoy it.
Read More

How to Remove Fake Windows Security Center


How Do I Remove Fake Windows Security Center ?

How to remove Fake Windows Security Center : There are two methods. The manual way and the automatic way. First – if you want to try and remove it manually (and I only recommend this to IT Professionals!) you must disable all related system processes, adjust all related system DLL files and registry files in the LOCAL_HKEY_USER folder, block all related websites, and delete all program files with the Fake Windows Security Center name. Below are the Fake Windows Security Center Removal Instructions.

Fake Windows Security Center Manual Removal Instructions:

Stop Fake Windows Security Center Processes:
[random].exe
Remove Fake Windows Security Center Registry Keys:
HKEY_CURRENT_USERSoftwareClasses.exeDefaultIcon “(Default)” = ‘%1′ = ‘”%UserProfile%Local SettingsApplication Data[random 3 letters].exe” /START “%1″ %*’
HKEY_CURRENT_USERSoftwareClasses.exeshellopencommand “IsolatedCommand” = ‘”%1″ %*’
HKEY_CURRENT_USERSoftwareClasses.exeshellrunascommand “(Default)” = ‘”%1″ %*’
HKEY_CURRENT_USERSoftwareClasses.exeshellrunascommand “IsolatedCommand” = ‘”%1″ %*’
HKEY_CURRENT_USERSoftwareClassesexefile “(Default)” = ‘Application’
HKEY_CURRENT_USERSoftwareClassesexefile “Content Type” = ‘application/x-msdownload’
HKEY_CURRENT_USERSoftwareClassesexefileDefaultIcon “(Default)” = ‘%1′
HKEY_CURRENT_USERSoftwareClassesexefileshellopencommand “(Default)” = ‘”%UserProfile%Local SettingsApplication Data.exe” /START “%1″ %*’
HKEY_CURRENT_USERSoftwareClassesexefileshellopencommand “IsolatedCommand” = ‘”%1″ %*’
HKEY_CURRENT_USERSoftwareClassesexefileshellrunascommand “(Default)” = ‘”%1″ %*’
HKEY_CURRENT_USERSoftwareClassesexefileshellrunascommand “IsolatedCommand” – ‘”%1″ %*’
HKEY_CLASSES_ROOT.exeDefaultIcon “(Default)” = ‘%1′
HKEY_CLASSES_ROOT.exeshellopencommand “(Default)” = ‘”%UserProfile%Local SettingsApplication Data.exe” /START “%1″ %*’
HKEY_CLASSES_ROOT.exeshellopencommand “IsolatedCommand” = ‘”%1″ %*’
HKEY_CLASSES_ROOT.exeshellrunascommand “(Default)” = ‘”%1″ %*’
HKEY_CLASSES_ROOT.exeshellrunascommand “IsolatedCommand” = ‘”%1″ %*’
HKEY_CLASSES_ROOTexefile “Content Type” = ‘application/x-msdownload’
HKEY_CLASSES_ROOTexefileshellopencommand “IsolatedCommand” = ‘”%1″ %*’
HKEY_CLASSES_ROOTexefileshellrunascommand “IsolatedCommand” = ‘”%1″ %*’
HKEY_CLASSES_ROOTexefileshellopencommand “(Default)” = ‘”%UserProfile%Local SettingsApplication Data.exe” /START “%1″ %*’
HKEY_LOCAL_MACHINESOFTWAREClientsStartMenuInternetFIREFOX.EXEshellopencommand “(Default)” = ‘”%UserProfile%Local SettingsApplication Data.exe” /START “C:Program FilesMozilla Firefoxfirefox.exe”‘
HKEY_LOCAL_MACHINESOFTWAREClientsStartMenuInternetFIREFOX.EXEshellsafemodecommand “(Default)” = ‘”%UserProfile%Local SettingsApplication Data.exe” /START “C:Program FilesMozilla Firefoxfirefox.exe” -safe-mode’
HKEY_LOCAL_MACHINESOFTWAREClientsStartMenuInternetIEXPLORE.EXEshellopencommand “(Default)” = ‘”%UserProfile%Local SettingsApplication Data.exe” /START “C:Program FilesInternet Exploreriexplore.exe”‘
Remove Fake Windows Security Center Files and Folders:
%AllUsersProfile%t3e0ilfioi3684m2nt3ps2b6lru
%AppData%Local[random].exe
%AppData%Localt3e0ilfioi3684m2nt3ps2b6lru
%AppData%RoamingMicrosoftWindowsTemplatest3e0ilfioi3684m2nt3ps2b6lru
%Temp%t3e0ilfioi3684m2nt3ps2b6lru
Note: In any Fake Windows Security Center files I mention above, “%UserProfile%” is a variable referring to your current user’s profile folder. If you’re using Windows NT/2000/XP, by default this is “C:\Documents and Settings\[CURRENT USER]” (e.g., “C:\Documents and Settings\JoeSmith”). If you have any questions about manual Fake Windows Security Center removal, go ahead and leave a comment.
How to delete Fake Windows Security Center files in Windows XP and Vista:
  1. Click your Windows Start menu, and then click “Search.”
  2. A speech bubble will pop up asking you, “What do you want to search for?” Click “All files and folders.”
  3. Type a Fake Windows Security Center file in the search box, and select “Local Hard Drives.”
  4. Click “Search.” Once the file is found, delete it.
How to stop Fake Windows Security Center processes:
  1. Click the Start menu, select Run.
  2. Type taskmgr.exe into the the Run command box, and click “OK.” You can also launch the Task Manager by pressing keys CTRL + Shift + ESC.
  3. Click Processes tab, and find Fake Windows Security Center processes.
  4. Once you’ve found the Fake Windows Security Center processes, right-click them and select “End Process” to kill Fake Windows Security Center .
How to remove Fake Windows Security Center registry keys:
Warning! Your registry is a vital key to your Windows system. If you plan on making any edits to your registry, you absolutely must backup your registry first in case anything goes wrong. Be forewarnd that a mistake when editing your registry can result in a computer that no longer boots up. These instructions are designed for IT Professionals and PC Experts.
  1. Select your Windows menu “Start,” and click “Run.” An “Open” field will appear. Type “regedit” and click “OK” to open up your Registry Editor.
  2. Registry Editor will open as a window with two panes. The left side Registry Editor’s window lets you select various registry keys, and the right side displays the registry values of the registry key you select.
  3. To find a registry key, such as any Fake Windows Security Center registry keys, select “Edit,” then select “Find,” and in the search bar type any of Fake Windows Security Center ’s registry keys.
  4. As soon as Fake Windows Security Center registry key appears, you can delete the Fake Windows Security Center registry key by right-clicking it and selecting “Modify,” then clicking “Delete.”
How to delete Fake Windows Security Center DLL files:
  1. First locate Fake Windows Security Center DLL files you want to delete. Open your WindowsStart menu, then click “Run.” Type “cmd” in Run, and click “OK.”
  2. To change your current directory, type “cd” in the command box, press your “Space” key, and enter the full directory where the Fake Windows Security Center DLL file is located. If you’re not sure if the Fake Windows Security Center DLL file is located in a particular directory, enter “dir” in the command box to display a directory’s contents. To go one directory back, enter “cd ..” in the command box and press “Enter.”
  3. When you’ve located the Fake Windows Security Center DLL file you want to remove, type “regsvr32 /u SampleDLLName.dll” (e.g., “regsvr32 /u jl27script.dll”) and press your “Enter” key.
If you wish to restore any Fake Windows Security Center DLL file you deleted, type “regsvr32 DLLJustDeleted.dll” (e.g., “regsvr32 jl27script.dll”) into your command box, and hit the “Enter” key.
Did Fake Windows Security Center change your homepage?
  1. Click Windows Start menu > Control Panel > Internet Options.
  2. Under Home Page, select the General > Use Default.
  3. Type in the URL you want as your home page (e.g., “http://www.google.com”).
  4. Select Apply > OK.
Read More

How To make Magnetic Card Reader using Arduino



I will show you how to connect a Magtek magnetic card reader to an AVR or Arduino/clone and read data from the first track of card. Buckle your seats; magnetic card readers have a high bit rate!
Step 1: The Equipment List


There are a few things you'll need to get started.
  • Magnetic card reader (Mine is a Magetk 90mm dual-head reader. $5.00)
  • AVR, Arduino, or clone (ATmega328p ~ $4.30 from Mouser.com
  • Solderless breadboard
  • Some wires
  • Maybe a header if you like that sorta thing.
  • Something to read your serial port. I use AVR Terminal from BattleDroids.net
That's all you should need to get started. Depending on the magnetic card reader you end up getting, you may have to modify these instructions, and most assuredly the code, to work with your specific reader. However, the code I've written should get you pretty far, I hope.
Step 2: Self-clocking Magnetic Card Readers



Magnetic card readers are "self-clocking," meaning that they provide a clock called a strobe, against which the connected microcontroller can sync. This is a boon. It means you don't have to worry about looking for a clocking signal and timing the signal to center directly on the clock pulse, and no bothersome oscillating into the sweet spot of the clock signal. This make sense when you think about card swipes: everyone swipes at a different pace, some slower, some faster than others. Self-clocking allows even my sweet grandma the ability to use her card without breaking her wrist. Reminds me of having to change the setting for her that determines how much time is valid between clicks to register a double-click....

This card reader's data is valid 1.0 us before the strobe is put onto the line, so there's no worry about delaying to get yourself into the "bit time." For a dual head reader such as the one I'm using, there are two data tracks available to read. In this 'ible, I'm going to show reading from the primary first track to get you started.

There are five connections you will need to make (four if you don't mind giving up more fine tuned control for fewer I/O ports being used). Check out the picture below. The red wire goes to +5V while the black wire goes to ground. The green wire is /CARD_PRESENT; the yellow wire is /STROBE, and the white wire is /DATA1. The forward slash ( / ) means that the data is inverted. A low signal (ie 0) is read as a one, or high. The other connectors are brown for /STROBE2 and orange for /DATA2. We won't be using these.

If you want, you can forget about /CARD_PRESENT. This data line goes low after about 17 head flux rotations to indicate that a card is present (instead of, say, random noise causing your reader to send bogus data) and is used to validate that the data you're getting is card data and not junk. You can skip this connection if you check for the start sentinel on the data stream. More on that later.

As you can see below, I used a right angle male header connected to a bread board and connected my reader to that. I connected /STROBE to PIND2 (digital pin 2 on an Arduino), /CARD_PRESENT to PIND3 (for illustration purposes), and /DATA1 to PIND4. Make sure you enable pullups on these pins so your pins don't float. I also traded out my Arduino for a Bare Bones AVR because I like the way it fits into the breadboard.
Step 3: Magnetic Card Basics



The primary functions that you'll need to do to read a magnetic card are:
1. Detect when the card has been swiped
2. Read the stream of data
3. Detect when the card has gone
4. Process the data
5. Display the data

First, I'll introduce you to some magnetic card basics that you'll need to know when you start writing your own code.

Magnetic Card Standards
Magnetic cards are standardized by the ISO in the following documents:

7810 Physical characteristics of credit card size document
7811-1 Embossing
7811-2 Magnetic stripe - low coercivity
7811-3 Location of embossed characters
7811-4 Location of tracks 1 & 2
7811-5 Location of track 3
7811-6 Magnetic stripe - high coercivity
7813 Financial transaction cards

As you can see, financial cards are specified in a separate document and often have different formats than, say, your grocery card or international calling card. You will have to program for these differences. I just had a credit card and insurance card handy, so I programmed for these types (which both happen to be format B).

Card Formats
There are several different formats for magnetic cards. Format A and B are common, with B being the most common I've seen, and which is supported in this code. Formats C through M are reserved by the ISO, I believe, while N through ?? are reserved for institutional custom use.

Track 1
For financial cards, the first track is recorded at 210 bits per inch and is the first 0.110" of the card from the top. The data is encoded as "card data" as 7-bits per character. That's 6-bits for the character and a bit for parity. There are ~ 79 alphanumeric characters on track 1.
The physical ordering is backwards. That is, data is  but it's written backwards on the card (and hence, will be read by your firmware) as . The parity is odd.

The card data format looks like this:
[SS] [FC] [Primary Account #] [FS] [Name] [FS] [Additional data] [FS][ES][LRC]where:
SS Start sentinel
FC Format code
FS Field separator
ES End sentinel
LRC Longitudinal Redundancy Check character
Track one SS = '%', FC = one of the formats (going to be B a lot of times), FS is often '', ES is '?' and the LRC character is commonly '<' although it's not specified in the standards. Besides being written on the card backward, the data has an odd parity bit and is 0x20 from ASCII. We'll handle this when we process the data.

Track 2
Track two is 0.110" wide and starts 0.110 from the top of the card. It's recording density is 75 bits per inch. The data is 5-bits per character and consists of around 40 numeric symbols only. You shouldn't encounter any letters on this track.

The card data format should follow this structure:
[SS] [primary account #] [FS] [additional data | discretionary data] [ES] [LRC]
The SS for track two is the semicolon: ';' and the FS is '='

With this holy knowledge under your belt, continue on to the next steps to see code implementing the procedure outlined above.

Step 4: Detect When a Card is Swiped


  • Detect when a card has been swiped

Formally, one would check the /CARD_PRESENT pin to see if it's dropped low. Fortunately, this isn't really necessary. We'll check for valid card later. Alternately, you could read your strobe pin to see when strobes have been put onto the pin, however, this will net you lots of clocking zero's. The reader will send about 60-70 leading zero's to let you know that data is about to be presented. However, we're going to use the nature of binary data to determine when to start recording bits.

The start sentinel (SS) for track one is the percentage sign (%). It's binary value is 0010 0101 which means it will be stored (and read) as 1010 001 (it's 7-bits so the 8th bit isn't transmitted). Now, the astute reader will notice that even though the data is backwards it doesn't match the binary ASCII value. That's because it's 0x20 off of hex. The % symbol is 0x25 and 0100 0101 is 0x05. Card data has 0x20 subtracted from the value. That one hanging out there in the high nibble is the odd parity bit. It's put there so that there are an odd number of "1"s in the value.

So because we know that a valid card will always start with this start sentinel, and because the parity bit is a 1, then when we detect the first HIGH to LOW transition on the data pin, then we know we have just started to receive the start sentinel from a card. Now, this isn't always going to be true, and a foolproof plan would be to check the /CARD_PRESENT card to see if it's gone LOW in addition.

The simplest way to detect the start of the SS, is to create an external interrupt triggered on the falling edge of the /STROBE. The data is valid 1.0 us before the falling edge, so when you've sampled the falling edge, then you know you can read the /DATA1 pin and get a valid value. Here's the code to create your external interrupt triggered on a falling edge.
voidInitInterrupt(void){    // Setup interrupt    BSET(EIMSK,INT0);     // external interrupt mask    BSET(EICRA,ISC01);    // falling edge    BCLR(EICRA,ISC00);    // falling edge    BSET(SREG,7);         // I-bit in SREG}
In my common.h that I include in all my programs, the definitions of BSET and BCLR can be found. Refer to that file should you have any questions about how to set bits.

Now, when the interrupt is triggered, we want to sample the /DATA1 (in my code defined as CARD_DATA) and set a bit in a general purpose IO register. If we're on the 7th bit, save off the register as a character in our global buffer. I use a GPIOR0 register because it's spiffy fast access.
The pseudo code is something like this:
Stop 16-bit timer    Clear timer    If DATA is LOW        Set BIT=1 in REGISTER        Decrement BIT        Set flag so we don't skip any more 0's    else DATA is HIGH        Set BIT=0 in REGISTER         Decrement BIT    If BIT is 0        Add byte to buffer        Increment index        Reset BIT
If you are asking yourself why decrement instead of increment, remember that the data is backwards, so instead of recording the bits as we get them from LSB to MSB, we save them from MSB to LSB so we don't have to reverse the bits later when processing the data. If you really wanted, you could also add 0x20 hex here, but since it's about 5us on these strobes, I'm keeping the processing in this interrupt service routine to a minimum.
ISR(INT0_vect){ StopTimer(); ClearTimer(); if ( !BCHK(PIND,CARD_DATA1) ) // inverse low = 1 { BSET(GPIOR0,bit); --bit; bDataPresent = 1; } else if (bDataPresent) { BCLR(GPIOR0,bit); --bit; } if (bit < 0) { buff[idx] = (char)GPIOR0; ++idx; bit = 6; } StartTimer();}
If you're wondering what the timing business is about, that's covered in the step in determining when the card has left the reader.

Step 5: Read the Stream of Data
  • Read the stream of data
Well, I've already shown you how to read the data, as it's part of the Interrupt Service Routine for our falling edge external interrupt. An alternative method would be to set a flag in the ISR, and in the main loop poll the flag and read the data that way, but I believe the way I've presented it is cleaner. Be your own judge and write yours however your MCU will allow it.

That being said, let's move on to finding out how to detect when the card pulls an Elvis and has left the building.





Step 6: Detect the Card Leaving the Reader


  • Detect when a card has gone
Formally, one would sample the /CARD_PRESENT pin to see if it's gone HIGH again, but we don't need no steenkin' /CARD_PRESENT taking up another I/O port. This is where those timers come in.

Every time the interrupt is called because we've detected a falling edge on /STROBE, we stop a timer, clear the timer value and start reading. When we've finished reading we start the timer again. Repeat ad nauseum, or until the timer reaches a certain value. That means that the last interrupt has been called and no more data has come in, so we assume that's it and start processing the data we've collected.

For timers, we use TIMER1, ie the 16-bit timer. I'm using a 16 Mhz resonator externally to my AVR. If you're using an arduino, then you probably are, too. So, I've chosen a prescaler value of 1024 which means every (16,000,000 / 1024) times the timer will increment. That is to say, it will 'tick' 15,625 times a second. The /CARD_PRESENT will go HIGH indicating the card has left the reader about 150ms after the last data bit. Knowing this, I just decided to check about every 1/4 of a second. That would look something like this:
    ( ((F_CPU) / PRESCALER) / 4 )
which turns out to be around 3900. So, when the timer counter TCNT1 reaches 3900, then I know it's been about 300ms and I can pretty safely conclude that the card has left the reader. Easy.

#define PRESCALER     1024#define CHECK_TIME     ( (F_CPU / PRESCALER) / 4 ) // 250 ms#define StartTimer()     BSET(TCCR1B,CS10), BSET(TCCR1B,CS12) // 1024 prescaler#define StopTimer()      BCLR(TCCR1B,CS10), BCLR(TCCR1B,CS12)#define ClearTimer()     (TCNT1 = 0)

You've seen in the ISR where the timer is started, stopped, and cleared on each interrupt. Now, in the main loop we just check to see if the timer counter has reached our target value, and if so, start the data processing.
for (;;){ if( TCNT1 >= CHECK_TIME) {
StopTimer();
ClearTimer();
ProcessData();
ReadData();
idx = 0;
bit = 6;
bDataPresent = 0;
memset(&buff,0,MAX_BUFF_SZ1);
}
}


Now it's safe to process the data.
Step 7: Process the Data

  • Process the data

The processing phase consists of:

  • checking for a valid SS
  • checking parity
  • converting to ASCII
  • checking for a valid ES
  • checking LRC

Here, I don't bother with checking parity, as I just set that bit to zero. I also don't calculate the LRC for this little tutorial. That would be something that a more fully realized firmware might want to do.

Here's the code to process the data doing the above steps (sans the previously mentioned). Find it in the image below. It's commented and pretty self-explanatory. A special note on parity and ASCII:
I simply clear the parity bit (7th bit...ie a 1 with 6 zeros behind it) and to convert from "card data" you must add 0x20 to the value. That's about it.
Step 8: Display the Data


  • Display the data

The display goes to a terminal program I wrote specifically for connecting to an AVR via RS232 or USB. The program is called AVR Terminal. The ReadData() method is pretty ugly and you're encouraged to find a cleaner solution than the one I came up with.

There's also an output of the function in AVR Terminal. The output is first of a health insurance card, and the second is of a VISA card. Click the [i] in the upper left corner of the picture and choose original or large image to see it better.
Step 9: Code Download and Wrapup

In this instructable I've discussed some basics of magnetic card readers and shown you some code to get you started in the right direction in reading data from magnetic cards. There's plenty more work that could be done, such as reading and decoding the 2nd track, calculating the LRC and calculating the odd parity on each byte.

The full source code is available for download below. It was written in AVR Studio 4.17.
Download Source Code




Read More