This is part 2 of a 3 part series on the SmartStarter project.
- Part 1/a> covers initial hardware, setup, and software development of the Arduino + GSM functionality.
- Part 2 covers hardware and software revisions and integration of the unit into the car
- Part 3 covers setup and development of the GPS tracking functionality.
I overhauled the hardware and software for v2 of the SmartStarter, resulting in a simpler architecture and cleaner code base. Additionally, the SmartStarter has been hardwired into the always on 12v line in my car.
See the full changes below the break!
Changes since v1.0
- Simplified architecture -- moved to Pro Mini + breakout board mounted on PCB from Uno + breakout board on breadboard
- Housed in project box -- added hardwired on/off + status LED
- Cleaned up code -- removed unnecessary clutter in setup and door functions, added status detection code for v3
- Integrated into 12v always on line in car -- DC / DC buck converter cleans "dirty" power input
Remotely start or lock/unlock car via text(part 1) Power device via car always on 12V rail(part 2)
- Obtain GPS signal via OEM antenna and push coordinates into database at 30 min intervals (part 3)
- Write front end Google Maps overlay for GPS coordinates (part 3)
One of the most substantial changes between v1 and v2 of the SmartStarter is the move from an Arduino Uno + breadboard to an Arduino Pro Mini mounted to a PCB.
While getting parts for another project, I ordered some cheap Chinese clones of the 3.3v Pro Mini (like $1.30 cheap) off of Ebay. Somewhat surprisingly, all 5 of them worked perfectly out of the box--no missing bootloaders, cold solder joints, etc.
I mounted one of the new Pro Minis to a small PCB along with the FONA shield/breakout board.
In retrospect, I wish I had thought more about spacing when I soldered the pin headers to the PCB. As a result, I was unable to connect the Arduino to the shield with solder traces, and instead opted to create some custom female to female jumpers. I am planning to revise this at a later date.
I bought a cheap project box to house the project, and picked up a AA enclosure + batteries for testing purposes. After testing out a few layout configurations, I ended up going with a setup similar to below.
Another major change in v2 is the integration of the project directly into the car's power supply.
Many people are aware that their cars have 12v lines running to the electronic components inside. However, I think most people aren't aware of how noisy those 12v lines actually are. For example, my "12v" line reads ~12.5v when the car is off, ~8v when it is cranking, and ~14.5v while the car is running and the alternator is charging the battery.
This poses a slight challenge when attempting to safely connect electronics components directly, especially something like an Arduino that takes 12v in MAX. One simple and cheap way to get around this is by using a DC/DC buck converter (aka a step down converter). Without getting too technical, these converters efficiently (>90%) step down voltage while stepping up current.
In this case, I opted for a buck converter that took 6-22v in and outputted a clean 5v, drawing 12mA max at up to 95% efficiency (claimed). This covers the low I measured on the line (8v) and any potential small spikes above the high I measured on the line (14.6v).
I hardwired a small switch between the buck converter and the rest of the small circuit, and added a status LED. The LED power is currently pulled from the 3.3v vcc pin on the Arduino, although I plan to add an additional LED pulled from the FONA for v3.
I tested the circuit out at 14.6v before installing into the car.
When installing the AV system in my car a few years ago, I ran an always on 12v line to the Pioneer XM adapter I housed under my seat. For this project I tapped the power and ground running to that box into an SAE adapter.
I wired the other end of the SAE adapter to the buck converter lines running out of the project box. This is the current setup, all housed under the drivers side seat of my car.
Testing it out!
I still need to fix the blank space in the response texts (it currently uses the full SMS 160 character limit).