loading
Picture of Bluetooth Garage Door Opener & Car Starter
BluetoothCaseAndFobEnclosed.jpg
BluetoothModuleAndFobInOpenCase.jpg


If you're like me, you nearly always carry your phone or are frequently at a computer. I often find it more convenient when I can interact with the things around me like the garage doors, car starter, sprinklers, electric blankets, holiday decorations, etc. via my phone or computer.

It is relatively easy to Bluetooth enable many devices. These instructions will explain how I Bluetooth enabled my garage doors and car starter. The implementation is quite generic. Similar techniques could be used to Bluetooth enable many other things too.

The Bluetooth board that was used has at least six different connections that could each possibly control a different thing.

There is a corresponding free Android application that you can download; Daisy On/Off. It allows dynamically creating, labeling, and configuring multiple buttons so that you can easily control the various things that are Bluetooth enabled.

There are risks associated with wireless control and modifying any equipment. You assume full responsibility and associated risks related to your use of this information.

Materials: You can also buy a kit with all components.  For more information, check our website at http://daisyworks.net

Tools:
  • Soldering iron and solder
  • Wire cutters/strippers
  • Screwdriver
  • Knife
In addition to the above materials and tools, you will need an Android device to utilize the corresponding Android Daisy On/Off application for interacting with the Bluetooth module. Alternatively, there are links to the simple commands so that applications for other types of Bluetooth devices can be created. For example, you could control the Bluetooth module from a laptop or PC that is Bluetooth enabled. Apple 'i' product hardware has restricted Bluetooth access and would have to proxy through another device like a PC. Not a difficult task, but another hoop to have to jump through - choice is a good thing.
 
Remove these adsRemove these ads by Signing Up

Step 1: Getting to know the circuit and parts

Picture of Getting to know the circuit and parts




The Bluetooth board has at least six pins that can be used for general purpose input/output (GPIO). The Bluetooth module on the board operates at 3.3V, however the board has a voltage regulator so that it can be powered from USB power or via other power sources like wall-warts or batteries up to 18VDC. By connecting the Bluetooth module to a general purpose MOSFET switch it can switch higher voltages and currents.

The BS170 MOSFET is a general purpose N-Channel transistor. This means that the switch turns on when the voltage on the gate is positive ~2.1V with respect to the source. The MOSFET source and Bluetooth module ground are connected together so they are properly referenced to each other. The gate of the MOSFET is the control and gets connected to one of the Bluetooth board GPIO pins. The MOSFET is turned on by driving the corresponding GPIO pin high.

When the Bluetooth module is reset or not set as an output, the pin effectively floats - it actually has a weak pull-down. By connecting a resistor between the MOSFET gate and source, we ensure that it always turns off.

Alternatively, if we wanted to turn positive power on to a device instead of grounding it for control, we could connect a P-Channel MOSFET to the N-Channel MOSFET. The source would connect to power, the gate to the drain of the N-Channel MOSFET and the drain to the devices positive terminal. The device would be directly connected to ground. A resistor should be connected between the MOSFET gate and source to ensure proper turn-off.

The Bluetooth board GPIO 3, 6, 7, 10, and 11 default to low upon power-up and will be off. GPIO 8 and 9 default to high upon power-up and will be on. The power-up state of each pin is configurable, see the quick reference manual and/or user manual.

Step 2: Initial assembly

Picture of Initial assembly
assymblyOneSwitch.JPG
assymblyOneSwitchBottom.JPG
See pictures of each step below.
  1. Attach the headers to the board
  2. Place the perforated board over the headers
  3. Place the transistor and resistor in the perf board - leave an extra row of holes between the resistor and headers  and transistor and outside edge of board for connecting wires
  4. Connect the resistor leads to the transistor leads

Step 3: Final assembly and connections

Picture of Final assembly and connections
assymblyThreeSwitchesNoWiresBack.JPG
assymblyWithGndAndGPIO.JPG
assymblyWithAllWires.JPG
assymblyWithAllWiresBack.JPG
  1. Add more transistor and resistor pairs to switch more things if desired
  2. Connect the transistor source to the Bluetooth board ground pins - connect to both header grounds to physically stabilize the board
  3. Connect the transistor gates (center pins) to Bluetooth board GPIO pins - each one to a different pin (recommend 3, 6, 7, 10, 11)
  4. Connect wires to the devices to be controlled

I used old phone cable, but most any wire could be used. Cut two phone cables, each long enough to run to one garage door opener. The green and black wires were connected together and red and yellow together - this is not necessary though. The black/green wire pair is connected to the transistor source which is ground. The red/yellow wire pair is connected to the transistor drain.

The spare car starter key FOB was opened and the battery and switch pins were identified. One end of the switch connected directly to the battery. This pin was connected to the transistor source. The other switch contact pin was connected to the transistor drain.

The MOSFETs contain protection diodes between the source and drain. If the car starter FOB is connected backwards, it will conduct through the protection diode and activate the starter immediately. If this happens just reverse the wires.

Step 4: Connect the garage doors

Picture of Connect the garage doors
I have Craftsman garage door openers. Terminals 1 and 2 are shorted when the garage door button is pressed. The transistor source is connected to terminal 1 and the transistor drain is connected to terminal 2.

The MOSFETs contain protection diodes between the source and drain. If the garage door opener is connected backwards, it will conduct through the protection diode and activate immediately. If this happens just reverse the wires.

Step 5: Configure and Test

Picture of Configure and Test


The device can be tested many ways. The simplest way to test it would be to use the free Daisy On/Off application for Android. Just download, configure, and test. The device can also be controlled through any Bluetooth serial port connection (SPP). I like to use BlueTerm on my Android for command line testing and GtkTerm on Ubuntu Linux.
  1. Power up the Bluetooth module by connecting it to a USB host or a USB power adapter. The LED should blink red indicating waiting for connection.
  2. Enable Bluetooth and open the Bluetooth manager
  3. Scan for new devices - the device can be renamed so it can easily be identified, see the manual
  4. Pair with the device - default pin code if requested is 1234, can be changed for security (up to 20 characters)
  5. Connect with SPP - the Bluetooth module should change to green indicating connected
  6. Open a terminal like GtkTerm, on Linux
  7. Connect to the rfcomm port
  8. Immediately send just $$$ not followed by Enter - the device should respond with 'CMD', if it doesn't, the internal command mode timer has expired. Power cycle the Bluetooth module and try again.
  9. Once in command mode, send 'st,255' followed by Enter - this sets the command mode timer to indefinite
  10. Use the quick reference manual to figure out exactly which commands to enter to control the Bluetooth module GPIO pin that was selected for control, e.g., if GPIO pin 3 was selected enter the following commands:
    1. s@,0808 followed by Enter - sets GPIO 3 to an output
    2. s&,0808 followed by Enter - sets the pin high and turns on the transistor
    3. s&,0800 followed by Enter - sets the pin low and turns off the transistor
You will likely want to turn the transistor on and off quickly for applications like the garage door and starter FOB to simulate a one second press. For this reason having an application is ideal.

The direction command only needs to be sent once after the device is reset or power-cycled. Optionally  you can send s%,0808 to set the GPIO 3 direction to output on power-up. The direction command would then never have to sent again unless the device is factory reset for some reason.

Step 6: Package

Picture of Package
BluetoothModuleAndFobInOpenCase.jpg
HotGlueCaseClosed.jpg
BluetoothCaseAndFobEnclosed.jpg
MountedCasesAndPowerRouting.jpg
So that the electronics aren't hanging in the breeze and exposed to potential damage, it is ideal to enclose them. Cardboard, plastic or rubber potting, or plastic project cases could be used. Potting is not desirable because it isn't easy to modify, repair, or re-purpose the electronics in the future if desired.

Since I have a MakerBot Thing-O-Matic, it is quick and easy to whip up a custom project case. Just draw one up in Google SketchUp, convert it to STL, and print it out. I can print for you.

The components were then test fit into the cases. Had to do a little filing on the perf board since I measured it close and it breaks slightly uneven. The starter FOB fit, but was also a little tight. Probably a bit of shrinkage in the plastic as it cooled.

After testing, the Bluetooth case was closed with hot glue and the starter FOB with duct tape. No respectable project would be complete without a little duct tape and hot glue.

To mount it to the garage rafters, I used some Velcro dots. The dots were stapled to the wood since the sticky back might come loose in the heat and humidity. The dots will probably stick OK to the plastic since it is clean and not very permeable.
1-40 of 73Next »
Very nice concept
Saves BOM by replacing atmega and all related components.

I suggest to give your products more aesthetic look.will make your daisy work products more awesome !!
JasonS793 years ago
I did a similar garage door opener project:

http://goo.gl/mnYY2
drmpf JasonS792 years ago
So did I .

www.pfod.com.au has step by step instructions for an Android controlled Garage Door opener (via bluetooth), NO Android programming and No Soldering required just plug and play

Uses my pfodApp. which has a user interface controlled completely by the Arduino code. Multiple menus, navigation screens, user input, multiselection lists etc.

Think HTML replacement for micros, with messages <255 chars and simple code on the micro side.

pfodApp is the micro-browser and your micro device (like Arduino) is the micro-server.
mrevil5653 years ago
tcollinsworth,

I setup the project but have run into some issues with it. I think one is that the garage door opener I have is older and it has power running through the lines that control the opener. I think in stead of pulling the transister to ground I need to just close the transistor. I'm not too sure of that. But my other issue is that my bluetooth board has stopped working properly. The indicator LED is no longer working and I may have lost the programming on the controller. Is there a way you can help diagnose this with me? Maybe via email instead of open forum. Let me know if you can.

tcollinsworth (author)  mrevil5653 years ago
Can you please send an e-mail to service@daisyworks.com and we'll try to help resolve the problem. Thank you.
gitanojr3 years ago
I dont have a Garage door, but i do have a car alarm that start my car, how do i connect this to my car alarm?? would i have to get some type of Bluetooth receiver for my car alarm?? and if that the case where can i get it, and how do i install it??

Thanks in advance...
tcollinsworth (author)  gitanojr3 years ago
I wish I could answer your question, however, I would need to know the make and model of this doohickey car alarm that starts your car. If you tell me that, I could try to figure out how you could interface to it. Interfacing with the starter key fob is much easier. I have a new bluetooth board that has the MOSFETs on it and screw terminals to simplify installation. I'll be posting a new Instructable on it very soon.
Thyce3 years ago
Great idea and great work! Thank you for the excellent instructable. This project could only be improved for lazy people like myself by making the setup completely hands free. It has a very big "wow factor" to show friends that you can open and close the garage door or car door with your phone but it would be much more convenient to have the car automatically unlock when you walk up to it, or the garage door open when you drive up without even reaching for you phone. This project may be easily adaptable to a Bluetooth Proximity Detector that simply scans for your Bluetooth MAC address to do just that.
Damonic4 years ago
Altogether a VERY well layed out Instructable... bravo! The inclusion of videos is helpful as well. I've dreamed about walking around my hobby farm and being able to control floodlights, waterers, gates, etc. with my Android phone. Obviously BT wouldn't work due to range but are you aware of any similar 802.11 based breakout boards that might work for my goals?
tcollinsworth (author)  Damonic4 years ago
The Bluetooth module is a Class 1 device capable of ~100m (300ft) line-of-site (LOS). The Motorola Droid that I have is a Class 2 device capable of ~10m (30ft). I found that I can communicate over a hybrid of those ranges as expected. I've ordered an antenna for ~$5 (incl. shipping) that has been claimed to increase the range of BT to ~3/4 mile communicating with a phone. We'll see.

I'm creating an 802.11 board for this and other purposes where BT won't work, like Apple iProducts.
I work in an office building where my car is typically parked about 5-7 floors below where my desk is located (everything is above street level). My remote starter doesn't work from this distance/building environment. Would your Bluetooth w/ antenna or 802.11 plans for for my situation? I would love to be able to start my car with my phone while sitting at my desk. Thanks!
tcollinsworth (author)  Patrick.3 years ago
I've been working on a WiFi module with optional external antenna. As long as you have open wifi or know the codes, this could work for you. We also plan to support iPhone. I'll update the instructable when it is ready.
Any idea when that will be available or the cost?

I am contemplating having a Viper SmartStart system (http://www.viper.com/smartstart/android/ ) installed in my wife's car but am not too keen on the $400+ cost, or the $300+ cost to add it to my existing system.  A basic starter + wifi would presumably achieve the same thing at a fraction of the cost of the Viper system. 
tcollinsworth (author)  Patrick.3 years ago
We are testing the WiFi boards now. The anticipated price is under $100 depending on selected features. The final version is expected to have at least two control outputs, temperature, accelerometer, and several other features.
Hi Damonic,
You could try something from National Control Devices
I find NCD to be a bit on the pricy side for my projects, but that could be because of my budget (not much)

This is a great Instructable. Good videos too.
Nice work :)

chookchooks




mcasinillo3 years ago
sir' can u pls. post a sample video controlling ur device using commands instead of the daisy app.?
tcollinsworth (author)  mcasinillo3 years ago
It is simple enough to explain.

Discover and pair with the Bluetooth module. Then connect with SPP through the Bluetooth manager.

On linux rfcomm0 or the next available number will be created in /dev. On windows the next available comm port will be created.

Connect with the port that was created. You can use gtkterm on linux or hyperterminal or teraterm on Windows. You can also connect to the port with most any programming language for automation. This is the command on linux: gtkterm -e -p /dev/rfcomm0 -s 115200

Send $$$ and the module will respond with CMD.
To set PIO3 to an output send s@,0808<CR> and the module will respond with OK.
To set PIO3 high send s&,0808<CR>.
To set PIO3 low send: s&,0800<CR>.

You can find quick reference manual for the bluetooth commands here.
tcollinsworth (author)  tcollinsworth3 years ago
On Android devices you can use the Blueterm app to connect and send all the above commands.

The Android Bluetooth chat example is a good basis to begin from in order to create your own Android applications.
mcasinillo3 years ago
hi sir'.. if i order ur product how long it will take for me to receive if im in the philippines?
tcollinsworth (author)  mcasinillo3 years ago
That would depend on which shipping method you select. If you want it quicker, you can pay more and get it faster. If you want to save your money and are flexible, then choose the USPS shipping and pay only a few dollars or zero depending on total order amount and location. I would expect the order to arrive in ~10 days depending on customs and local service.
mcasinillo3 years ago
sir can i use a none touchscreen cellphone for this device?
and doi need to have the daisy app. if i wish to control only one device?

im planning to use ur device for my door lock project using my current cp:

sony ericsson k530

pls.. help..
tcollinsworth (author)  mcasinillo3 years ago
You can communicate with the module with any device that supports Bluetooth SPP profile. All you need to do is send it simple commands to turn any pin on or off. This can be done with probably any programming language that can communicate with the Bluetooth stack.

The Daisy On/Off app is an Android app and was specifically written for touch screen. A non-touchscreen app could easily be written.

According to the specs, the Sony Ericsson K530 does support the Bluetooth SPP profile, see: http://www.jawal123.com/1536090795/en-us/sony-ericsson-k530
lcolancecco3 years ago
I am trying to make it power a 5v relay I tried manny different resistors but none of them worked.....any suggestions?
tcollinsworth (author)  lcolancecco3 years ago
Yes, you can power a relay. You will need more than a resistor. If you connect the Bluetooth module directly to a relay you will most likely damage it. The pins can only handle about 4 mA which is far less than most any relay. You will need to switch a transistor which can switch the relay. I've created a schematic for you.
Ok I built the circuit exactly as you're schematic and it still is not working, I double and tipple checked it and I know it's correct, but somehow it just isn't working!
tcollinsworth (author)  lcolancecco3 years ago
It is possible that if you connected and tried to source or sink too much current that you damaged an output. Luckily there are several. The outputs can easily be tested with an LED and a 330 ohm resistor. Just connect them to each output and toggle the PIO pin it to see if the LED goes on and off. Try it with the LED+resistor connected to both +3.3V and to ground. Just remember to reverse the polarity. You might have blown either or both a high side or low side transistor.

I'm happy to work with you to try to identify the issue.
tcollinsworth (author)  lcolancecco3 years ago
Take a closeup picture of the front and back and post it somewhere like google docs and send the links. I will do me best to help you solve the issue.
In your schematic you have what looks like a resistor but it's labeled U$2 is that supposed to be and inductor, resistor, I'm not familiar with that label
tcollinsworth (author)  lcolancecco3 years ago
U$2 is a resistor. I forgot to change the reference designator. It should have been labeled R1. Any value between 1K and 100K would be fine. I typically just use 10K. It is there to make sure the transistor turns off quickly and completely if the gate is not driven.
I tried using the mosfet in your schematic but it didn't work, I'll try this circuit, thank you!
Good day sir.. I would like to ask if i can change the name of the switch in the Daisy on/off android apps.??? .example "left garage door" to "Computer starter" ..tnx.
Yes, the switch labels, number or switches, and associated pin are easily configurable.
Thank you sir...Did you have a blueprint for this project...or some of the digital circuits diagrams .? ? can i ask those sir. THANk ahead...^_^
A block diagram of the circuit is shown in one of the pictures and the schematic is drawn and described in one of the videos. The board schematic is available in the documentation listing if you click the link to the board.
Sir can i use ordinary bluetooth for this project?
I assume by ordinary you mean standard Bluetooth as implemented by most phones and/or PCs. The Bluetooth module implements the most common Bluetooth specs in use today - 2.1/2.0/1.2/1.1 and SPP. That being said, Apple iPhone and iPad do not support SPP and can't be used to directly communicate with the module. They could communicate vi TCP/IP to a PC that has Bluetooth as a proxy.
Great idea! I wonder if it can be hacked like a regular garage door opener?
tcollinsworth (author)  Skipper3333334 years ago
Anything could be hacked given enough time. The Bluetooth module that is utilized supports encryption and up to a 20 character pin code. Since you only have to pair once, having a long pin code is not a big deal and provides decent security. You can manually change the pin code and enable encryption. Adding configuration of those features is planned for an update of the Daisy On/Off application.
Sound great, I will make that one for car, etc. I have a question, supports encryption and up to a 20 character pin code, how change pin in bluetooth module? use USB between computer and module?
tcollinsworth (author)  vroom3504 years ago
You can change all the setting over the air. When you connect to the module, send $$$ to enter command mode. You many need to power cycle the module as it has a command timer so that it doesn't go into command mode arbitrarily. I set the timer to unlimited before I ship the modules to make it easier for users to configure.

SA,1 - to set force pin code on
SP, - to set the case sensitive pin code

I have posted all the docs here. These settings are documented in the user manual.
1-40 of 73Next »