In January of 2010 I came across an article on hackaday.com where the author complained that his remote car starter suffered from extremely poor range. If he stood within 10 or 15 feet of his vehicle his car starter would work just fine but if he was any further away, it would fail to start hihs car. I found the article particularly interested because, at the time, my truck's car starter had exactly the same problem and was effectively useless.
To solve this problem, the author purchased a device from China that connects to the GSM cell phone network and accepts SMS messages and phone calls to control electrical relays onboard the device.
As you can see in the picture above, the device takes 12V power as an input, and has two 30 amp single pole double throw (SPDT) switches. SPDTs have three terminals: one common pin and two pins which vie for connection to the common (Normally Open and Normally Closed). The authors' design requires you to sacrifice the fob on your key ring by removing the plastic casing and wiring the COM and NO contacts of the relay to the button that is pressed to start your vehicle. The device & fob are then mounted under the dash of the vehicle and power is supplied to the device via the vehicles cigarette lighter.
This allowed the author to call or send an SMS to the device, which would then flip the state of the relay, connecting the COM and NO contacts together, which are wired to the fob's remote starter button, which effectively presses the start vehicle button. Since the fob is sitting underneath the dash, range isn't an issue, and the car can be started from anywhere in the world. This was years before cell phone car starters had become mainstream.
Since my car starter had garbage range as well, I thought I'd give this a shot. I ordered the device from China and had to send payment via a wire transfer. I was concerned sending money via a wire transfer, but three weeks later my device arrived. To document my progress, I decided to create an instructable to document my work for anyone else who wanted to do the same thing. The first step is to take apart the key fob. I ordered a spare used one off eBay so that I could still use my existing remote.
In the first picture you can see there are four buttons on the remote, but 5 contacts on the remotes PCB. The button used to start the vehicle is the eastern button (one on the right). You can see that the contact looks like two letter "E"'s hugging each other. When the button on the key fob is pressed, a conductive pad smushes down and completes the connection between these two traces. One of the GSM devices' switches will need to be wired to each letter "E" (one to COM and one to NO), all while ensuring that no stray solder connects the two "E"'s.
We use COM and NO because COM is the "common" post and is always used, and NO means "Normally Open". "Normal Open" on a switch indicates that it is the post that is not in contact with COM when the switch is in it's default resting state. When the switch is "ON", NO and COM are connected. When a switch is off, COM and NC are connected.
This was possibly my first time ever soldering on my own, but I believe it only took me a few screw ups to solder it solidly. An optional step is to solder wires to the two contacts where the battery normally rests, and connect those to the devices 12V+ and ground posts. Luckly the GSM device requires 12V DC and this remote uses a 12V battery, so I didn't need any kind of voltage regulator. That being said, the power coming from the cigarette lighter is extremely variable and would often bounce from 12V up to 14.5V. If the GSM device or the remote were sensitive to these voltage spikes we would need to regulate the power input, but in this case I got lucky.
In the picture below you can see the wires from the remote car starter going to the GSM device's first relay, and two power wires going to the remote's power prongs:
The plastic bag is to prevent any contact between the wires or the remote once I fold it down into the cavity of the GSM device's case. Next it was time to test the the device by popping a SIM card into the GSM device and powering it up. These devices only operate on 850 MHz, 900 MHz, 1800 MHz, and 1900 MHz frequencies, and in Canada only Rogers 2G GSM/EDGE network works with them.
You can see in this picture the cigarette lighter adapter I bought off eBay for $5:
To trigger my vehicles car starter, all I had to do was call the phone number assigned to the SIM card within the GSM device, or send an SMS to that number with a command like this:
The OUT1=ON portion of the message is telling the device to turn the first relay on; it's a latching command so to turn off the relay you need to send an OFF command. Later versions of the device allowed timed control of the relay, so a single SMS could tell the relay to turn on for a set amount of time (milliseconds, seconds, minutes, or hours). The
OUT2 part refers to relay #2, etc.
To keep unauthorized users from accessing the device, SMS messages require a password prefix and voice calls are only allowed through if the phone number is present in the devices white list of allowed phone numbers. Adding a number to the list is simple:
Calling the device only triggers the first relay, and this trigger can be either latching or momentary. If it's in latching mode, the switch will stay on until another phone call is received. If it's in momentary mode, it will turn on the switch for a set amount of time which can be configured via SMS message. The granularity of the timer can be milliseconds, seconds, minutes, or hours.
About a year after I built this I had become interested in Android development. I was getting a bit annoyed with the process of having to enter my truck's phone number every time I wanted to start my truck (first world problems), so I decided to build an Android app to make it easier. My goal was to create an app that would require a single tap to call my truck, start it, and then close the app. Unfortunately the dialing API on Android was (and perhaps still is) locked down a bit. It's not a big deal to open up the Android Dialer app and insert a phone number, but the user must still press the call button. I wanted an app that would open, call my truck, start it, and then close itself seamlessly. I eventually found a restricted dialing API, but using it meant that my app would forever be for personal use only; usage of that API precluded the app from being distributed via the app store (which didn't matter, this was just for me). I whipped up an APK, found a picture of my Mazda B2300 quarter ton truck online to use as an icon, and voila, instant truck starting from my cell phone:
This project was a ton of fun. I learned how to solder, found a way to prolong the life of my remote car starter, built my first Android app, and eventually started a small side business out of this, selling GSM controlled switches in my spare time. Having to wire money to China and deal with next to no support from the manufacturer led me to selling these devices on eBay, and eventually on my own webstore: Relay Supply. I've now sold thousands upon thousands of units to thousands of customers in over 60 countries, helping all sorts of small businesses solve problems without the need for complex industrial control systems. Many customers often wanted customized circuits to meet their needs, however learning how to build these, and actually building them took far too much of my time. Plus I wasn't particularly great at it: