Amazon’s branded Dash But­tons were intro­duced in March 2015, allow­ing products to be eas­ily re-ordered with a single click of the bat­tery-powered device — not to be con­fused with the unbranded UK Amazon­Fresh ver­sion (which works like a mini­ature ver­sion of the pop­u­lar hands-free Amazon Echo).

As an inex­pens­ive (US$4.99) wifi-enabled IoT device, in less than 3 months they were start­ing to be re-pur­posed. There are a hand­ful of approaches, from fairly non-tech­nic­al ARP probe detec­tion through to bare-met­al repro­gram­ming. Amazon them­selves are also reach­ing out to developers and smal­ler brands with their Dash Replen­ish­ment Ser­vice.

Get­ting star­ted seems pretty simple — when you get a Dash but­ton, Amazon gives you a list of setup instruc­tions to get going. Just fol­low their list of instruc­tions, but don’t com­plete the final step . Do not select a product, and just exit the app.

Most tech­niques use some­thing like IFTT to con­nect the but­ton event to a IoT trig­ger of your choos­ing. Instruct­ables has a great step-by-step tutori­al, and there’s some great open-source code avail­able on GitHub.

Amazon Dash Button (Tide) on washing machine
The Dash But­ton as it it usu­ally used — to order more Amazon products (such as wash­ing powder).

The detailed specs:

  • The CPU is a STM32F205RG6 pro­cessor which is an ARM Cor­tex-M3 that can run up to 120mhz and has 128 kilo­bytes of RAM and 1 mega­byte of flash memory for pro­gram storage
  • The WiFi mod­ule is a BCM943362 mod­ule which in com­bin­a­tion with the CPU make it a plat­form for Broadcom’s WICED SDK
  • There’s a 16 mega­bit SPI flash ROM which is typ­ic­ally used in con­junc­tion with the WICED SDK for stor­ing applic­a­tion data
  • An ADMP441 micro­phone is con­nec­ted to the CPU and used by the Dash iOS applic­a­tion to con­fig­ure the device using the speak­er on a phone/tablet
  • There’s a single RGB LED and a button

Quite power­ful for US$5.

How­ever, the next step in this evol­u­tion has just been released — the AWS IoT But­ton.

The AWS IoT But­ton is a pro­gram­mable but­ton based on the Amazon Dash But­ton hard­ware. This simple Wi-Fi device is easy to con­fig­ure and designed for developers to get star­ted with AWS IoT, AWS Lambda, Amazon DynamoDB, Amazon SNS, and many oth­er Amazon Web Ser­vices without writ­ing device-spe­cif­ic code. 

Tar­geted at developers, this US$20 ver­sion con­nects to the web using the Amazon Web Ser­vices Lambda plat­form without writ­ing a line of code (ok, so not developers then). How­ever, even the “Hello World” example described here seems quite tech­nic­al — in some ways, even more so than hack­ing the ori­gin­al (and at four times the cost). It seems to have three types of but­ton pushes, though — short, long and double for more interactions.

AWS IoT enables Inter­net-con­nec­ted things to con­nect to the AWS cloud and lets applic­a­tions in the cloud inter­act with Inter­net-con­nec­ted things. Com­mon IoT applic­a­tions either col­lect and pro­cess tele­metry from devices or enable users to con­trol a device remotely.