
How I Hacked Amazon’s $5 WiFi Button - hodgesmr
https://medium.com/@edwardbenson/how-i-hacked-amazon-s-5-wifi-button-to-track-baby-data-794214b0bdd8
======
haswell
I could see this being a useful tool when trying to form good habits. Brush
teeth? push the button. Get a fresh glass of water from the fridge? push the
button.

When analyzing other aspects of my life such as spending, I have tools to show
me what I've done in the past, and those tools can help me improve (e.g.
spending reports). This is admittedly reactionary, but I find it useful
nonetheless. Track enough other "stuff about stuff", and I think the data
could become interesting over time, providing similar "hindsight" that in turn
can be used to improve oneself.

Of course, this means it will be necessary to have button things all over the
place...

~~~
willhinsa
That's exactly what I plan on using mine for. It makes logging actions so much
faster. I would love to just have a smartwatch with a set of about 12 or so
buttons that correspond to a specific action, but that will take time to
happen, if at all.

~~~
sp332
If you don't mind pulling your phone out, IFTTT launched a new app called Do
that just lets you push a button to "do" something on one of their channels.
They have pre-made recipes for putting the current time into Google
Spreadsheets etc. [https://ifttt.com/recipes/227069-track-your-work-
hours](https://ifttt.com/recipes/227069-track-your-work-hours)

I think IFTTT is working on a Pebble app as well, but it hasn't launched.

~~~
ctdonath
That would work best as a watch "complication". Pulling phone out, turning on,
finding app, tapping activity button takes too long; much easier/suitable to
turn wrist, tap icon (adjacent to clock), tap activity. Good idea, if
implemented with zero friction.

~~~
sp332
That's a cool idea. Pebble doesn't have a touchscreen, though. You could
program one of the shortcuts (long-press one of the 3 right-side buttons) to
open the list or even activate a specific activity directly. Assuming such an
app ever launches!

~~~
ctdonath
Quite doable on Apple Watch. Enjoying my timer, exercise monitor, and calendar
"complications" on the Watch face - very little UI friction.

------
eob
Hi folks -- what a surprise to check HN and see my own article.

Here's a summary of the reports I've gotten since publishing it the other
week:

1) It works. Most likely problem you'll have is installing the Python
libraries I used.

2) Check the comments for a version someone posted that works on RasberryPI
with no extra libraries.

3) I'd love to hear what you build. Coolest use case so far is a few folks
using it as a remote light switch for connected light bulbs.

~~~
lordleft
How does the baby like the button? (I love this article!)

------
JTon
> Just follow this list of instructions, but don’t complete the final step —
> don’t select the particular product you want ordered.

Overall I think this is great. I can see this being useful for a variety of
different tracking; not only for infants. I'd probably go a step further and
using my router I'd block the Wifi Button from having access to the web. I can
just imagine the feeling of having many unexpected packages showing up at my
door.

------
jo909
This is really cool. I suspect the buttons are already sold at loss, so it is
probably very hard to build a similar, but more open, device at around a price
point where you could just plaster the whole house with such buttons.

But I wonder if it might be done when leaving out the WiFi and most of the
processing power from the button, and having essentially what is a RF remote
control (like used for remote controlled outlet switches) with a receiving
station. The receiver would be the "expensive" part, the gateway to
Wifi/Internet and contain all the logic that links a button press to something
usefull like a HTTP request.

A kit of

5x Etekcity Outlet Receivers 2x Remote Control Transmitters 2x 12V Batteries

can be had for 30 bucks including shipping, so based on that I could see it
done.

Edit: obviously the behavior of such a button would have to be much better
than a typical cheap remote control regarding reliably registering and then
transmitting each and every button press, so the comparison is of course very
limited

~~~
bigiain
The wifi and a tiny microcontroller are available for around $5 in single
units these days - google "esp8266" \- I'm only _marginally_ surprised Amazon
can ship these for $5, but I bet they aren't making much (if any) loss on
these at their volumes.

~~~
jo909
If $5 was near their costs, wouldn't they then sell it for 2$ or something,
because Amazon (and their brand partner) make money with the button later?

I bet the $5 price point is something they arrived at mostly by asking what
customers are _willing_ to pay.

That whole concept is so new they would not hinder it's success by making the
button $10 or anything near the true cost. Amazon is all about investing in
growth, and this is very likely an investment. Maybe not even that much in
additional sales, but in mindshare for a totally new and unique shopping
experience.

All of that does not work for an open "does anything you want"-button, so
anybody designing and selling such a thing would have to think very very
different about the hardware cost.

~~~
bigiain
I wonder…

My suspicion is perhaps someone said "Make them free! We'll make _heaps_ more
out of the sales than they cost!", and someone else (probably a greybeard with
enough experience to remember) said "Hey, remember CueCat? Maybe we need to
'sell' them for at least enough that when someone works out a good use for
them that _doesn't_ result in retail sales, we won't be too unhappy with
people flocking to grab them from us..."

------
nkurz
I was wondering the Button was configured for WiFi access. It's more
interesting than I though. It's configured by running a Dash Button app on
your Android or Apple smart phone.

The Android version works about as I would have guessed, by using the Dash
Button as an access point, and the app helps you connect to it. But the Apple
version communicates with the phone by ultrasonic tones!

[https://www.amazon.com/gp/help/customer/display.html?nodeId=...](https://www.amazon.com/gp/help/customer/display.html?nodeId=201746340)

~~~
BHSPitMonkey
Google's Chromecast can be configured using both of those methods, too.

------
Rimpinths
Does this remind anybody of the CueCat? Same story...subsidized hardware that
hackers repurposed for other uses. I think the makers of CueCat tried to
unsuccessfully sue the hackers:

[https://en.wikipedia.org/wiki/CueCat](https://en.wikipedia.org/wiki/CueCat)

[http://www.securityfocus.com/news/89](http://www.securityfocus.com/news/89)

Do the Amazon Dash buttons come with a license agreement? Has anyone read it
to see if it prohibits these kinds of hacks?

~~~
nivla
Well CueCat was "free" (Although mostly forced on you). Amazon dash is a
regular paid product on Amazon. Neither of them can hold you accountable for
hacking/repurposing it. However, if someone has a chance that would be CueCat.

------
drtse4
Something similar could be built easily using an ESP8266, but a single AA
battery would not be enough. Looking at this guide[1] it looks like new sw can
already be flashed on it, but other than using the uart or some gpio, i don't
see attempts at using the wifi interface.

[1] [https://learn.adafruit.com/dash-hacking-bare-metal-
stm32-pro...](https://learn.adafruit.com/dash-hacking-bare-metal-
stm32-programming/overview)

~~~
nnurt
Amazon's WiFi Button is way way better than the ESP8266: it has 1MBit internal
flash, 16MBit external flash, a powerful 120MHz microcontroller with tons of
peripherals (2 DACs, 3 ADCs, etc), an internal MEMS microphone (!)

The microcontroller on Amazon's button also has a real 1500-page documentation
in English, instead of 10-page badly translated Chinese datasheet.

------
mkopinsky
Here at Penn we have a research platform where we try to motivate (among other
things) medication adherence. We have integrated with various devices in the
past that automatically track when the meds are taken, but for some reason the
vendors of these devices always seem to flake out. We've been thinking lately
that a simpler approach where people just push a button when they take their
meds might be more sustainable, especially as a simpler device may reduce our
dependence on those outside vendors.

What we're looking for: A simple, preferably small device, that we can program
to make HTTP calls home to our server. Participants in our studies are
scattered geographically and not all of them have wifi, so cellular is
crucial. We have done studies with anywhere from a few hundred to a thousand+
participants, and hope to scale up beyond that as well, so cost at scale is a
big factor. Today I came across bt.tn, and I love the UI simplicity of their
product, but their prices are high, and it seems they don't include SIM cards
with their buttons. Particle.io's prices are more in line with what we're
looking for (especially the $3/month data fee), but my concern is that (at
least from their website) the devices still look like hobbyist electronics
with PCBs still visible, rather than like simple consumer devices.

Does anyone have suggestions for something with the UI simplicity of Amazon
Dash or bttn but without bttn's price point? (Or feel like making us 500 or
1000 such things? The economics can totally be worth it.)

~~~
psyklic
There have been a few projects on KickStarter that do this. For example:

\+ [https://www.kickstarter.com/projects/sparkdevices/spark-
elec...](https://www.kickstarter.com/projects/sparkdevices/spark-electron-
cellular-dev-kit-with-a-simple-data)

\+ [https://www.kickstarter.com/projects/konekt/konekt-dash-
cell...](https://www.kickstarter.com/projects/konekt/konekt-dash-cellular-dev-
kit-free-global-data-plan/description)

\+ [https://www.kickstarter.com/projects/264813863/bluz-
bluetoot...](https://www.kickstarter.com/projects/264813863/bluz-bluetooth-
made-smarter)

~~~
mkopinsky
Those are all dev kits, rather than consumer devices. I don't have hardware
experience, and have no interest (in my current professional context) in
ordering casings, mechanical buttons, or anything else. I just want to feed it
a webhook URL and mail it out.

------
giech
There is also this (unrelated) repository for doing more hardware-oriented
hacks (i.e. programming the microcontroller):
[https://github.com/dekuNukem/Amazon_Dash_Button](https://github.com/dekuNukem/Amazon_Dash_Button)

Edit: Just saw that this was also posted in this comment's thread
[https://news.ycombinator.com/item?id=10075734](https://news.ycombinator.com/item?id=10075734)

------
kleer001
I'm really surprised that there isn't already a ready solution for this. Maybe
there is and it just got buried under bad marketing or something. Almost seems
like a no brainer, but then again there's the whole "It seems obvious in
retrospect thing." Maybe someone will jump in and outdo Amazon at this
particular task. China?

~~~
zaroth
The hack here is as much sniffing the GratARP as it is piggybacking on the
subsidized hardware without buying the (high margin) goods which were meant to
defray the cost of the device.

I shudder to think how this "ingenuity" could be prosecuted under CFAA...

~~~
fweespeech
Even if it was, simply hooking them up to a wifi network without an internet
connection is functionally identical.

Given that isn't something you can be prosecuted for, I don't see why you
could convince a jury this was.

~~~
aidenn0
IANAL, but...

It seems possible that Amazon could set up ToS for purchase of this that would
make doing this actionable.

~~~
vacri
If you abused 10 of these units, it still wouldn't be worth one hour of
lawyer's time.

------
jmorrow977
Someone please release a generic "generate event" button! (Or please tell me
where I can get one... Googling for "wifi enabled button" provides irrelevant
results).

Below someone mentioned this: [https://flic.io/](https://flic.io/) But
apparently it is only for pre-order right now.

Update: I searched for this on Amazon and noticed: "Available for Pre-order.
This item will be released on August 31, 2015."

So, it seems it will be released not that long from now...

------
d23
Awesome article and idea.

Would it be unreasonable to try to reverse or update the actual code on the
hardware to get it to send a request to an arbitrary server instead? I'd love
to team with a hardware person to cut out the layer of having to have a script
polling the network to find the device. It's always been something I've wanted
to learn more about. Or is that unrealistic?

~~~
nkurz
Yes, it's very possible. This project might help:
[https://github.com/dekuNukem/Amazon_Dash_Button](https://github.com/dekuNukem/Amazon_Dash_Button)

Starting with an Arduino that designed to be programmed would likely be an
easier first project, though.

------
vlunkr
Well that's probably more useful than what Amazon intended it for.

~~~
Someone1234
You say that but...

I have an elderly relative, she drinks Keurig K-Cups because with arthritis
she struggles to brew coffee the other way(s). She isn't very tech' literate,
and she has us order her more from Amazon every so often (since they're
cheaper than retail stores).

I'd love to give her a Keurig button and say "push this and more coffee will
arrive two days later." Literally I would have if they sold one (they don't).

~~~
nivla
Maybe I am overlooking something but why don't you subscribe her to Amazon's
"Subscribe & Save" program? This way she will consistently get her deliveries
and might even save 5% to 15%.

------
sliverstorm
It's popular to observe that cell phones are more powerful than the Apollo 11
spacecraft. Well, this button further highlights just how far along we've
come.

The Apollo 11 AGC was 16-bit, 2MHz.

The Dash Button is 32-bit, 120MHz, and at $5 is practically disposable.

------
antman
I use eps8266 for my IoT. Can't get any easier or cheaper than that.
[http://nodemcu.com/index_en.html](http://nodemcu.com/index_en.html)

~~~
profinger
That page is absurd. I'm on a pretty good internet connection and the image in
the background, of sheep for some stupid reason, was loading slowly in chunks.
I'm really starting to hate pages that think they need giant stupid high-res
images in the background.

~~~
hamandcheese
The IP its being served from (121.41.33.127) seems to be from China, which
would explain the slowness.

------
azernik
Side note - that is the most relatable explanation of ARP probing I've ever
seen.

------
chadlung
This sounds like a potential Kickstarter project idea. A generic version,
perhaps a pack of stickers to put on devices symbolizing misc. everyday
things.

~~~
radnor
The Flic button did just that, except it uses bluetooth instead of wireless.
[https://flic.io/](https://flic.io/)

The extra usability and generic-ness means it'll cost you $35 vs $5 for a
branded WiFi button.

~~~
StavrosK
It looks like that button isn't standalone, and needs a phone nearby to work.
I just want something with that form factor that makes a POST request to a URL
of my choice, that's it.

~~~
oliwary
How about the bttn? [https://bt.tn/](https://bt.tn/) I think it does what you
want and has wifi or mobile data.

~~~
StavrosK
It's 70 euros, which is an insane amount of money for a button, and it's huge
:/ The one posted above is small enough to unobtrusively stick on a wall and
less than half price this one. Hopefully they'll come out with a standalone
mod.

~~~
johnmaguire2013
There's also this one, but still not $5 -
[https://store.particle.io/?product=internet-
button](https://store.particle.io/?product=internet-button)

~~~
mkopinsky
Does that have a cellular modem/wifi module? Seems like you'd need to connect
it to a Photon or Electron to get connectivity.

~~~
johnmaguire2013
The first line on the link is "The Internet Button includes a Photon, which
can also be easily removed and used for other projects, a USB-micro cable and
a removable plastic cover."

:) So it seems like it comes with a Photon.

------
esaym
Sounds cool, easy, and cheap. Not sure what I would do with it. Here is a tear
down: [http://mpetroff.net/2015/05/amazon-dash-button-
teardown/](http://mpetroff.net/2015/05/amazon-dash-button-teardown/)

I can't find how long the battery lasts and with only one AAA, it might not be
that long.

------
akerl_
Anybody know if the MAC address in buttons of the same type is the same?

I know it'd be terrible network practice and terrible standards-wise and just
generally terrible, just figured I'd double-check before buying a crate of
Tide buttons and discovering they all report the same MAC

~~~
bentcorner
I don't know for certain but they _should_ be all different. Amazon's goal is
for consumers to have many of these things in their home, and they should all
interoperate nicely. Then again, the usage model probably doesn't really need
unique MAC addresses.

~~~
mikeash
I think the usage model does need unique MAC addresses. Maybe not for
everybody, but for a decent portion of their customer base.

For example, there are apartment buildings that provide WiFi for their
residents. If two residents buy the same button, chaos would ensue if the two
buttons had the same MAC address. For the personal care stuff, merely having
multiple people using multiple bathrooms who all want magic buttons to order
more would do it.

It sounds like the button only connects to the network when it needs to (which
makes sense to preserve power) so you could get away with it much of the time,
but if two people hit their duplicate buttons simultaneously you'd have
trouble.

------
TazeTSchnitzel
This is pretty cool!

I got distracted by the startup, though. Cloudstitch sounds kinda... strange.
Their sole product is APIs that interact with Google Docs - well, Google
Spreadsheets, they don't use the other formats. Are they wanting Google to buy
them, or something?

------
jreed91
I would like it if I could just change what I order. The options are pretty
limited right now.

~~~
fweespeech
The hilariously sad part is there is no technical reason this feature isn't
available. Just change the ASIN the button buys.

~~~
jreed91
Ahh I was wondering if it had some specific API for only allowed purchases.
But if that's the case I may buy one of these.

~~~
fweespeech
No, no. I said there wasn't a technical reason [e.g. Purchasing N is the same
as purchasing Y from Amazon's perspective]. They may have a security policy in
place to prevent it.

------
benkuykendall
Wouldn't the button still call back to Amazon every time you click it? Even if
it doesn't purchase anything, I don't need Amazon to know my assorted button-
clicking habits.

~~~
joezydeco
I would think Amazon could easily close the "button press orders zero items"
loophole and then this project would have some things to fix.

------
ck2
I am really curious to eventually learn the mentality (and financial status)
of people who use these buttons for real with Amazon.

~~~
xienze
They really are a good idea IMO. The idea is you put the button next to the
garbage bags, detergent, etc. Hey, the detergent just ran out, _click_ ,
ordered and done. Very convenient and eliminates the problem of forgetting to
add <whatever> to the shopping list.

~~~
sliverstorm
One might object that forgetting to add <whatever> to the list is really not a
terribly large problem, and you would be right- but $5 is also not a terribly
large sum.

~~~
xienze
For me personally, there's usually a gap in time between when I notice
<whatever> needs to be replenished and when I actually do it. Hence, the
possibility to forget. Having the button co-located with the item in question
essentially eliminates that problem. And $5 is worth it for me not to have to
make a special trip to the store when I really DO need <whatever>.

------
saurik
Wait, so the Dash button _isn 't_ an April Fool's Joke? I have been having
conversations with people about those things every couple months and we still
kept coming to the conclusion "it must have been a joke, but we aren't sure,
and we actually can see a couple interesting use cases"....

------
hoodoof
I'd user it for recording start and end time of tasks and activities. Put it
on the desk, start and stop.

------
andrewstuart
How to buy from Australia....

------
alinspired
Can't stop thinking of SilkRoad'ish evolution of this idea :)

------
andrewstuart
Love button. Press it to send an SMS telling your wife you love her.

------
anindyabd
This is great. I'm getting one of these buttons now.

------
mcphage
Awesome—this is exactly the kind of thing I was hoping for when I saw this
announced, and that's exactly why I bought one when I could.

------
hoodoof
Mount it under your chair so you know how much time you spend sitting each
day.......

------
jwildeboer
"Hack". Uhm. Nope.

~~~
theschwa
I'm not sure what you mean by this comment. This is pretty much the definition
of hacking something together.

~~~
d23
In fact, this is my favorite meaning of the word hack. It's turned into
essentially a synonym for "programmer" as far as I can tell, but I always
liked this classic definition of getting a thing to something other than what
it was intended to do.

