Hack the Amazon Dash Button (JK29LP) on macOS Sierra

I recently purchased the $5 Amazon Dash Button to use as a doorbell for my Facial Recognition doorbell project. Initially, I thought it would be a seamless process, however, such was not the case. Especially with the new JK29LP model. It took some time to figure out the best way to get the button working on macOS and for that reason I want to share how to set it up without any hiccups.

Dash Button Setup

Before we setup the button we need to get its MAC address. There are a few ways to do this but the easiest way is to put the device into config mode.

  1. Hold the button for about 6 seconds until the device goes into config mode.
  2. The device will now start broadcasting a wireless network with the SSID ‘Amazon ConfigureMe’.
  3. Connect to this network on your Mac, open a browser, and go to http://192.168.0.1 You’ll see the following:

Now we can start the setup process:

  1. Download the Amazon app.
  2. Go to Your Account > Dash Buttons & Devices
  3. Quit the app right when the product selection page shows up. Without selecting a product!!

Primary Setup

Once you are done with the dash button we need to move onto the computer.

Prerequisites

You need to have Homebrew and you should also be using virtual environments. But don"t worry, I have provided step by step guid. I am using Python 2.7.13.

Installation

Open up terminal and run these commands

  • pip install scapy
  • pip install pypcap
  • brew install --with-python libdnet

It’s possible that Python will not recognize modules installed by Homebrew. If that’s the case, Homebrew will let you know and you can just run the commands it suggests.

Everything is set up now and you should be able to run Scapy.

Here is the script I use to detect button presses. There are other ways but this works well for me and is quite short. Suggestions are welcome!

Run that script. You will probably have to run it as sudo. Once running, press the button and you should see “Button Press Detected” printed on your terminal.

Possibilities

The dash button is an amazing device. The application possibilities are endless.

And for my project I programed the Dash to open Pandora and play my favorite playlist. I was able to do that using following code. And don't forget to import webbrowser at the top

webbrowser.open('YOUR URL GOES HERE')