Introduction: Open Source BLE Door Lock

Ever been looking for your keys, and wanted to call them, before you realize that they are hideously analog pieces of metal? Or wanted to let someone into your house when you’re not at home, without having to lend them your keys?

Lockitron was the solution that descended from hardware heaven – a device that fits over the lock on your door and that is controlled via an app. It raised $2.2M on Kickstarter but missed its original shipping deadline by 1.5 years, leaving its backers in a deadlock (pun!). Are you one of them? Stop glaring at your empty mailbox and channel all your frustration into making your own awesome smartphone connected lock – The Bean Lock.

Tweaking the deadbolt

The Bean Lock is built around an electronic wireless deadbolt for a standard door. Almost any electronic deadbolt should work but some might need a bit of extra oomph. The deadbolt we picked uses a motor to slide it in and out of position, with a small switch that indicates when it’s locked.

We will use the LightBlue Bean to control the deadbolt motor because hey, it’s what we make, and because it’s pretty darn awesome. To connect the Bean to the electronic deadbolt you will need to cut almost all wires and electronics from the lock – the only electronics that you need to keep are the motor, position switch and the battery pack.

The Bean cannot operate at the same voltage as the motor, so we need to use a voltage regulator to step down battery voltage for the Bean to 3.3V. We also need a motor controller board to control the electronic deadbolt motor.

What you'll need:

Code

To open the lock, we will use the iOS app LightBlue. It has a section called the Sandbox, that lets you control the Beanwithout having to program your own iOS app. When the Bean receives a serial message, it checks the bytes received against the keycode saved inside the sketch. If the keycode matches the buttons pressed in the sandbox, the Bean Lock will unlock or lock. Get the code from GitHub.

A few wires and lines of codes later and boom, you have a lock that you can open using your smartphone! Good job. We are proud of you.

Security flaws

The Bean Lock would be a terrible lock if it were hackable enough to let people right into your home. Until you can be sure this is secure, we wouldn’t recommend you replace your home’s standard deadbolt with the Bean Lock. The Bean was designed to be very easy to program, but in the case of a lock, you may not want your neighbors having the same access as you have. To avoid this, we have added pincode protection to the latest firmware release. It will prevent anyone without the pincode from reprogramming your Bean.

If you want to be even safer, you can keep the BLE module from reprogramming the on-board Arduino by cutting the trace linking the reset line on the Arduino to the BLE module. Without the reset line, the LBM313 module can’t reset the Arduino chip for reprogramming. Optionally, you could solder a switch to this line, so only someone with physical access to the inside of the lock is able to reprogram the Bean.

Another suggestion is to add shared-key encryption. If you are using something small, like a 5-digit pin instead of a 128-bit key, an attacker could decide to brute-force your lock by trying every combination, one after the other. If you include a lockout – turn off the lock for 60 seconds after 3 incorrect codes are entered, for example – brute-forcing the lock’s combo would be too time-consuming to be practical.

What’s next?

This is only a prototype and not a secure solution yet. But we are sure that it can be developed further to work just as well as commercially available smartphone controlled locks, like the Lockitron.

For a more thorough description on how to build this, check out our Make Magazine blog post. Make sure to post in the BeanTalk forum if you have any questions, ideas or contributions you want to share. We love reading what you’re up to!

Step 1: Get the Parts

Picture of Get the Parts

Step 2: Modify the Lock

Picture of Modify the Lock

Open up the lock and dismantle the metal plate shown in the photo. The deadbolt we picked uses a motor to slide it in and out of position, with a small switch that indicates when it’s locked. You will need to cut almost all wires and electronics from the lock. The only things you need to keep are the motor, position switch and the battery pack.

Step 3: Connect the LightBlue Bean

Picture of Connect the LightBlue Bean

The Bean cannot operate at the same voltage as the motor, so we need to use a voltage regulator to step down battery voltage for the LightBlue Bean to 3.3V.

Solder the legs on the voltage regulator to the perfboard and connect the two capacitors to the voltage regulator.

Step 4: Power the Voltage Regulator

Picture of Power the Voltage Regulator

Solder a wire from GND to the far left leg of the voltage regulator and another from BAT to the middle one.

Step 5: Connect Motor Controller Board

Picture of Connect Motor Controller Board

We need a motor controller board to control the electronic deadbolt motor. This is how you wire it:

  • STBY to pin 3 on Bean
  • AIN1 to pin 0 on Bean
  • AIN2 to pin 2 on Bean
  • PWMA to pin 1 on Bean
  • VCC to BAT on Bean
  • GND to GND on Bean
  • VM to Battery Pack
  • A01 to Lock Motor
  • A02 to Lock Motor

Step 6: Connect Lock Position Switch

Picture of Connect Lock Position Switch

There are two wires going to the lock position switch. Solder one of them to ground and the other one to pin 5 on the LightBlue Bean.

Take a step back and admire the snake pit of wires you just created.

Step 7: Finished Wiring

Picture of Finished Wiring

Boom! This is what the wiring should look like now. Good job. We are proud of you.

Step 8: Screw It Back Together

Picture of Screw It Back Together

Put the LightBlue Bean and the motor controller board in the lock, screw the metal plate back on and slide the case back on. Don't forget to put in the batteries!

Step 9: Code

Picture of Code

To open the lock, we will use the app LightBlue. It has a section called the Sandbox, that lets you control the LightBlue Bean without having to program your own iOS app. When the LightBlue Bean receives a serial message, it checks the bytes received against the keycode saved inside the sketch. If the keycode matches the buttons pressed in the sandbox, the Bean Lock will unlock or lock. Get the code from GitHub.

Also, remember to add a pincode to your Bean to prevent other people from reprogramming it.

Step 10: Put It in Your Door

Picture of Put It in Your Door

You know how birds push their kids out of the nest to teach them how to fly? That is what we're doing to you now. Every door is (more or less) unique and you'll need to figure out how to put the lock in your door by yourself. But the lock comes with pretty straightforward instructions so you should be fine. Just flap and believe in yourself.

Birds are mean. Sorry.

Comments

sogseal (author)2015-02-13

and the switch on the wiring diagram the middle leg and 3 leg is used and on the picture its 1st leg and 3rd..

sogseal (author)2015-02-13

so i started working on this project and ran into problems:

1. VM to Battery Pack ( on the it connects to POS, how about White wire? where does it connect to?)

2. Step 7, wiring diagram.... the capacitor on the picture connected to the last leg of the voltage regulator and the other leg of capacitor is connected t o nothing, and on your diagram its connected to 1st and 3rd leg.

3. on the pictured you only use one GND on motor control and on the diagram you use two..

sogseal (author)2015-02-04

Im thinking on making this my weekend project! btw do you have android app or ways to get it working with android? Thank you

simsalapim (author)sogseal2015-02-04

Nice! We don't have any dedicated Android apps yet but there is an Android SDK that might be worth looking into! https://bitbucket.org/littlerobots/beanlib

tmoir (author)2014-10-09

What happens when the battery runs flat? Can you still get in?

simsalapim (author)tmoir2014-10-10

Yup! It still works with a normal key.

TOTeGuard (author)2014-09-22

http://10.52.112.101/totinno/totinno1.htmllo. ทีโอทีขยัน นวัตกรรมใหม่แห่งการรีโมทควบคุมระยะไกลแบบไร้สาย ด้วยTOT3/4G เชิญร่วมโครงการฝากบ้านไว้กับทีโอที www.TOTeGuard.Net

ArduinoGuido (author)2014-09-16

Very interesting indeed, although the Bean is far too expensive.

kenbob (author)2014-09-15

great instructable! easy to follow, and just the right amount of humor!

seamster (author)2014-09-15

Very interesting. Thanks for sharing this!

About This Instructable

34,550views

499favorites

License:

Bio: Creative Technologist.
More by simsalapim:Toothbrush machineAutomatic desktop fanSmartphone controlled mood light
Add instructable to: