Amazon’s brand­ed Dash But­tons were intro­duced in March 2015, allow­ing prod­ucts to be eas­i­ly re-ordered with a sin­gle click of the bat­tery-pow­ered device — not to be con­fused with the unbrand­ed UK Ama­zon­Fresh ver­sion (which works like a minia­ture ver­sion of the pop­u­lar hands-free Ama­zon Echo).

As an inex­pen­sive (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 approach­es, from fair­ly non-tech­ni­cal ARP probe detec­tion through to bare-met­al repro­gram­ming. Ama­zon them­selves are also reach­ing out to devel­op­ers and small­er brands with their Dash Replen­ish­ment Ser­vice.

Get­ting start­ed seems pret­ty sim­ple — when you get a Dash but­ton, Ama­zon gives you a list of set­up 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 prod­uct, 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. Instructa­bles has a great step-by-step tuto­r­i­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­al­ly used — to order more Ama­zon prod­ucts (such as wash­ing pow­der).

The detailed specs:

  • The CPU is a STM32F205RG6 proces­sor which is an ARM Cor­tex-M3 that can run up to 120mhz and has 128 kilo­bytes of RAM and 1 megabyte of flash mem­o­ry for pro­gram stor­age
  • The WiFi mod­ule is a BCM943362 mod­ule which in com­bi­na­tion with the CPU make it a plat­form for Broadcom’s WICED SDK
  • There’s a 16 megabit SPI flash ROM which is typ­i­cal­ly used in con­junc­tion with the WICED SDK for stor­ing appli­ca­tion data
  • An ADMP441 micro­phone is con­nect­ed to the CPU and used by the Dash iOS appli­ca­tion to con­fig­ure the device using the speak­er on a phone/tablet
  • There’s a sin­gle RGB LED and a but­ton

Quite pow­er­ful for US$5.

How­ev­er, the next step in this evo­lu­tion has just been released — the AWS IoT But­ton.

The AWS IoT But­ton is a pro­gram­ma­ble but­ton based on the Ama­zon Dash But­ton hard­ware. This sim­ple Wi-Fi device is easy to con­fig­ure and designed for devel­op­ers to get start­ed with AWS IoT, AWS Lamb­da, Ama­zon DynamoDB, Ama­zon SNS, and many oth­er Ama­zon Web Ser­vices with­out writ­ing device-spe­cif­ic code.

Tar­get­ed at devel­op­ers, this US$20 ver­sion con­nects to the web using the Ama­zon Web Ser­vices Lamb­da plat­form with­out writ­ing a line of code (ok, so not devel­op­ers then). How­ev­er, even the “Hel­lo World” exam­ple described here seems quite tech­ni­cal — in some ways, even more so than hack­ing the orig­i­nal (and at four times the cost). It seems to have three types of but­ton push­es, though — short, long and dou­ble for more inter­ac­tions.

AWS IoT enables Inter­net-con­nect­ed things to con­nect to the AWS cloud and lets appli­ca­tions in the cloud inter­act with Inter­net-con­nect­ed things. Com­mon IoT appli­ca­tions either col­lect and process teleme­try from devices or enable users to con­trol a device remote­ly.