Hacker News new | comments | show | ask | jobs | submit login
How I Hacked Amazon’s $5 WiFi Button (medium.com)
298 points by hodgesmr on Aug 17, 2015 | hide | past | web | favorite | 118 comments



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...


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.


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

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


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.


Fortunately IFTTT Do has a widget you can stick to your homescreen and even your lock screen.

Now if only it was a bit faster :( I use it to turn on the lights of a belkin wemo and it takes ~9 seconds for the light to respond, and frankly often doesn't work (in which case you get a helpful email stating it didn't work). But it's certainly much, much faster than using the Wemo app.


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!


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


so far I've found the Do button app to be totally unreliable... especially when trying to log things google spreadsheet, I often get the "recipe failed" type emails maybe 1 in 4 times...


There was a 3rd party app(pushbutton) that got pulled (upon request by IFTTT).

You can still implement this yourself using http://apps.getpebble.com/en_US/application/55123f98e28a6598... and the IFTTT Maker Channel ;)


You can also automate the process with GPS tracking: https://ifttt.com/recipes/133495-log-how-much-time-you-spend...


A Pebble with Tasker could get you there (HTTP POST) or one of the integrations. Even IFTTT or DO. You could probably also even go with the Magic Form app described in the OP's article.

Making it context aware is possible too (e.g. in the bathroom or at work) with some thinking of Wifi routers or if you wanted NFC tags, iBeacons.



Just a note, Misfit Flash now allows you to program button presses (single or double) to IFTTT, and from there you can go anywhere: https://ifttt.com/misfit

It's also fairly cheap at $19 (though not as cheap as these Amazon buttons, of course).

Edit: Misfit Flash is an activity / fitness tracker: http://misfit.com/products/flash


Check out Nuimo[1]. It's a small programmable device featuring a simple LED matrix style display while supporting multiple types of interactions. I could even see this in use at factories for ordering supplies for a specific machine or calling service technicians to it.

[1] http://senic.com


looks really cool, wondering if its worth an upgrade from using a 5$ webcam and a raspberry pi that i use for gesture control now, since the webcam lets me do audio commands as well.


Are there any other cheap wifi buttons without the bootup delay? Looking for something to talk to my raspberry py to turn off/on lights or switch spotify songs, would be annoying to have to wait for it.


Not with wifi, no. You'd probably be best off picking up an RF keyfob and matching receiver from somewhere; adafruit has a few, can probably find a bunch on ebay as well. The problem with Wifi is that because of everything involved down the chain, you can either have a really long battery life, or a really short bootup delay. For instant, with decent battery life, you're going to need a much simpler protocol.


Screw pressing the buttons. Can I train an Amazon Echo to listen for me brushing my teeth?


I heard a VC complaining about a pitch he had for an internet connected toothbrush for kids once. It would notify parents if it wasn't used.

I thought it was quite a good idea!


Or you could buy a device to bounce photons off the kid which deflect into your retina, and leverage a wetware neural network implanted in your brain to check if they have brushed their teeth.


Just put a webcam in your bathroom, you can track how long you brush, floss, even shower (save water if you're in CA!) with just one device.

No, seriously, the bathroom is the last place I want the quantified self.


I assume you're concerned about privacy; the bathroom is probably the second best place (after the fridge) for tracking your health stuff.

I would 100% buy a digital medi-toilet that analyzes my wastes and warns me if something is off.


Then they might start putting traceable additives to foods to better track you.... eg: you eat at restaurant X.... or shared food with person Y (by analyzing combinations of additives)... or used too much of drug Z...


Now that's an interesting thought.

Especially coupled with another reply, about my insurance company buying me one. They buy me one tomorrow, and raise my premiums the next year because I drink more than their actuarial table allows.


Ask your insurance company. In sure they'd be happy to buy you one.


Keeping track and sticking buttons all over the place is going to be an "early adopter" feature. Once we get to an overwhelming number of "buttons" it will make sense just to put up a couple cameras similar to the Microsoft Kinect and use hot zone + gestures to do the same thing. RFID in boxed products might help out but the buttons will end up being a mess right quick.


It is cheaper to put microphone and ask for food, similar to regular shop: "Hey, Amazon", "Order, please", "Bottle of milk and bread", "Bottle of milk «Foo» $2,50. Bread «Bar» $1,75. Total: $4,25. Confirm?", "Yes", "Order accepted, wait for delivery.". Something like Siri, but activated by push of hardware button on the fridge.


Isn't that what Amazon echo does?


Yep. But it's a closed-source always-on cloud-connected microphone that lives in the middle of your house, which creeps the hell out of a lot of people (including myself and most of my housemates).


Amazon released the Alexa Voice Service recently: https://developer.amazon.com/public/solutions/alexa/alexa-vo.... It takes advantage of the cloud functionality that powers Alexa but can be used on any device.


Interestingly enough, when I signed up for Amazon Fresh, I got a version of the Dash that is multipurpose. Instead of having buttons everywhere, mine has a barcode scanner, and voice recognition. When I am out of eggs, I just pick it up, push the "Mic" button, say "Eggs," and it appears on my "Dash" list when I log in to Amazon Fresh.


This is a different solution, and less manual - but OralB has a bluetooth enabled toothbrush that will auto-record your tooth brushing in their app (as well as metrics like 'time used too much pressure' and 'total brush time'). You need to manually record flossing and tongue brushing via the app though (using a button on your smartphone like others have described). It's not bad, it's not good, but it's a start.


Take your PRN medication, press button.


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.


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


> 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.


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


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.


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.


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..."


I need to get one Dash button and set it up so that pressing it orders more Dash buttons.


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=...


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


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

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?


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.


Wifi chips are cheap. So cheap, that I'd all but guarantee they're still making a profit on it, even at $5. You can get ESP8266 chips from people in china for about $2.50 each including shipping, and those will do everything these buttons do. Given Amazon's volume, they probably cost half that for them, so hacking them is pretty much free advertising.


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...


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.


Additional info beyond the adafruit article: https://github.com/dekuNukem/Amazon_Dash_Button


Lots of info here: http://www.esp8266.com


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.)



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.


There is also this (unrelated) repository for doing more hardware-oriented hacks (i.e. programming the microcontroller): 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


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?


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...


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.


IANAL, but...

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


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


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/ 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...


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?


Yes, it's very possible. This project might help: https://github.com/dekuNukem/Amazon_Dash_Button

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


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


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).


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%.


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.


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


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.


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


Well, cheaper, no. But easier wouldn't be hard. I have two nodemcu-s, and getting the toolchain to work on OSX or Ubuntu has been a series of headaches - drivers are nontrivial, flashing updates is touchy, etc.


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


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


The Flic button did just that, except it uses bluetooth instead of wireless. https://flic.io/

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


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.


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


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.


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


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


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.


How cheap could these get? Which would be cheaper, bluetooth or wifi?

Amazon obviously can subsidize via product sales.


Rough bill of materials is probably around 3-5 dollars (I searched online and found low power wifi chips in bulk at around 2-3 dollars). I'd estimate 10-15 dollars after R&D, assembly, packaging, shipping, etc. Does that seem reasonable?



Well there apparently is an "Amazon Elements" button that is pretty generic. Just slap a label on top of it.


I can see vinyl sticker sites having a dash template very soon.


Hmm. It could be done with an ESP8266 and little more. I might put something together if I find the time.


yeah idk what terms to search for when looking for a generic wifi button. searches just come up with premade solutions from belkin or whatever.

i just want a switch that can send a message to my raspberry pi without the bootup lag


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/

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


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


I'm not sure, but I doubt it. You could order two or three and check for yourself.

According to a stack exchange discussion [1] duplicate MAC addresses could result from spoofing, a mistake during manufacturing, or willful negligence on the part of the manufacturer. I'd expect Amazon to follow the standards.

[1] http://serverfault.com/questions/462178/duplicate-mac-addres...


There's almost no way Amazon would be stupid enough to be shipping out tons of devices with the same MAC. Easy enough to order a couple and check though.


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.


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.


I figured if they were trying to be (terribly) "clever", they might go with one-MAC-per-product. Thinking about it more, that should be impossible since, as per the article, a single button can be used for a selection of products in that category, so it'd be possible that 1 Tide button buys one Tide product, and another buys a different Tide product, based on my configuration.

My fear was that they'd pick 1 MAC and declare "this shall be the MAC of Tide buttons", increment that 1 for Bounty buttons, etc etc


It looks like the demo video has at least two different buttons so it seems like they have different MAC addresses


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?


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


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


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.


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.


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.


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


You could probably set up a mishmash of dnsmasq and iptables to route everything including dns lookups to a custom daemon on your local network to prevent leaking clicks to the internet.


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


If I could get one in the UK for nappies or wet wipes I'd buy in a heartbeat, the major factors for it working there would be that I have no choice as to whether I buy more, and it never being a good time to stop and order more the usual way.

If I'm fishing nappies out of the box and notice we're running low I'm almost certainly mid change, or preparing to go out, and I'll probably forget when do I get the chance.


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.


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.


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>.


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"....


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


How to buy from Australia....


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


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


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


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.


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


"Hack". Uhm. Nope.


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


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.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: