In our most recent edition of Maker Thursday, we decided to see what we could learn about the new version of the Amazon Dash Button. There have been several attempts to reverse engineer the Dash in both 2015 and 2016 but we thought it would still be fun to see if anything has changed. We also wanted to reprogram the buttons to do some cool things in and for the Lab, like spin up a new AWS instance in Fortegoville!
We split up into a couple of different teams to analyze separate components of the Dash. We had a hardware team a networking team and a scripting team. The hardware team broke open the Dash button to check out the board and chip set. We didn’t get to any hardware hacking this time but we were able to document the most recent version of the hardware. We found the datasheets for the Atmel microprocessor, the Atmel Wireless chip, and the Bluetooth chip for further analysis.
The networking team was able to connect a couple of the Dashes to our test network and observer the network traffic after a button press. From this traffic, we extracted the MAC address of each of the buttons. All of the data packets were encrypted.
The scripting team had perhaps the largest job as they were tasked with implementing the ability to ‘reprogram’ the Dash buttons. Once we had the MAC address of each button, the scripting team developed a python script that would listen for that MAC address to make a request (on button press). The script simply publishes a message that contains the name of the button that was pressed to a Redis server we setup on AWS. Now we can do anything we would like on a button press since we setup a basic pub sub architecture. An unlimited number of things can subscribe to the push messages for any given button and we can make anything happen in the lab when a button is pressed!
Overall it was a fun project and something we were able to accomplish in a couple of hours during a Maker Thursday. We are excited to continue to add capabilities to our buttons!