Interfacing with car alarm

Hi everyone, I'm new here, and new to arduino. I don't have much experience with electronics but I've got some experience coding. Last year I got and installed a new alarm on my car. It's a Viper 5701. I've checked and it's SmartStart compatible which means I can add a module so I can Open/Close and other stuff from my cell phone. I checked their app and there aren't enough options to justify the price tag they're asking for the SmartStart module.

My question is it possible ( and how hard would it be ) to create a software on my arduino that can talk to the alarm on my car? The module has 4wires for communication + 2 for power as you can see in this picture:

Without any information about the bus and protocol used by the module and alarm I believe it would be really hard. I intended to add a GSM and GPS module to arduino to track my car and perform lots of tasks from my android. Any feedback appreciated.

Thanks :)

A picture might be worth 1000 words, but a link is worth even more.

I don't have any link with relevant info on that module :~

edit: I have the installation manual for the alarm, not the SmartStart module.


I'm not familiar with that system. I guess there is a handheld unit that talks to a unit inside the car which is hardwired to the main alarm module. And I guess that it is this interface to the main alarm module that you plan to exploit for your solution.

If the manufacturer had any sense, the whole thing would be encrypted to prevent exactly what you're trying to do. I mean, a security system that allows somebody to take control of it wirelessly is a pretty obvious security issue. So when you're looking for information about that interface I'd say you're looking in the right place, but that's nothing to do with Arduino.

I know this is a old thread, but someone else may find the information useful.

In have the VSM250, which is the same module BiruZ posted, just it also has the GPS functions. I also have a Directed electronics DBAll 2 and a Viper 3303 alarm. Viper is a sub-brand of Directed electronics who makes the smartstart and many other car alarms / interfaces, so many of the parts can talk to each other over what they call the D2D interface. Its just a serial UART that operates at 3.3v or 5.0v logic levels at a baud rate of 1200. The smartstart and the DBAll use 3.3v TTL, but appear to be 5.0v tolerant, while the alarm uses 5.0v TTL.

Wires: Red: +12v Black: Ground blue: DBAll TX, Smartstart RX, alarm RX green: DBall RX, Smartstart TX, alarm TX

I use a Teensy 3.1 to connect all the devices with the hardware UARTs. A bluetooth module is then connected using a software UART.

Communications on the D2D bus are not encrypted and there appears to be two types of information over the interface: status updates (doors open/closed, panic mode activation, etc) and commands. I've only figured out the commands which are 1 byte each. Commands need to be echoed back to the sending device or it will think the command was not received. It appears to retry a command once a second for up to ten seconds before giving up.

Commands: Lock = 0x91 UnLock = 0x9A Trunk = 0x94 Aux1 = 0x00 Aux2 = 0x01 Remote Start = 0x99 Panic = 0x90

It needs to be noted that the 3303 alarm is not compatible with smartstart. I made it work by having the teensy send its arm and disarm commands when it sees the lock and unlock commands from the dball or smartstart. The smartstart does have the capability to notify the smartphone if the alarm is triggered, but I don't know what data it sends as my alarm does not send the proper commands when it triggers.

CodeGreen: I know this is a old thread, but someone else may find the information useful.

CodeGreen, i stumbled across your post and it's exactly what i was looking for!! Thank you!!

Your post has all of the info i need for what i want to do, but i was wondering if you were able to figure out any of the other messages?

I have a couple of observations (that may be totally wrong) but hopefully can point in the right direction.

I’m trying to interface an arduino uno softserial (but just a laptop for testing for now) directly with the one of the audiovox/prestige remote starters (an APS-687a).

I’m trying to do this over serial pins labeled for the “Mating connector of telematic unit”, i’ve confirmed it’s +5V,ground and TTL serial signal levels.

I believe this is referred to as the data-to-data connector (d2d) and i’m hoping to to just send action bytes or queries to communicate with the unit.

Everything i’m seeing seems to indicate that ttl serial levels idle high at +5v and only drop to ~0 to indicate the start bit.

This remote start module however was outputting what i guess is called an inverted ttl serial signal, idling low at ~0 and indicating the start bit with +5v

Also, a poster above mentioned that it seemed to be a 1200 baud signal, but I was unable to get any response from the module when sending those 0x90 / 0x9A / etc commands at 12008n1 or 12007n1 or any combination i tried.

I hooked up my cheap usb oscilloscope to get some signal timings and it looks like when you press lock or unlock on the remote, the module outputs a serial byte 10 times over the next second or so, the lock button response byte and unlock button response byte are different.

with that said, the timing’s themselves look to more like 600baud, 9 bit pulse frame over approx 15milliseconds = approx 600Hz.

This is where i’m lost because i’m not sure how to proceed next.

The only luck i’ve had is randomly for looping 0-255 and sending that byte value (up to 4x repeatedly out to the com port configured for 600 baud) … and randomly the module will start clicking in response a start command, or lock/unlock and start echoing back bytes. It’s completely at random though so I suspect it’s a framing/timing issue, or perhap it truly is 1200 baud.

I’ll keep tinkering but any insights would be a great help.

The two attachments show the module responses one is the echo after pressing the lock button the other after pressing unlock. The trapped signal is one of the 10 times it’s repeated after a button press.

I’ve added a 7404 hex inverter to flip the tx/rx lines to the “correct” voltage levels but that hasn’t helped to clarify anything yet.

left out the “proper” serial timing reference attahment


And furthermore i should clarify that the for loop 0-255 communication is being done purely on the laptop for now for testing and that is over a usb to serial adapter

a “GearMo® USB to 5v TTL Header”