See github of this project for up-to-date high resolution images of the circuit board, pinout, data sheets, and serial debug outputs.

Project Logs

The WiFi module used in Amazon Dash button is Broadcom BCM943362WCD4. As can be seen below:

The crystal, microcontroller and wifi module are exactly the same.

It is supported by Broadcom's WICED SDK and IDE, which can be found in github here. Definitions and schematics of this particular module can be found here. JTAG headers are broken out in the testpads above so it should be easy to reprogram.

And also if you can register an account, there are tons of information at Broadcom's official website here.

First of all take a look at the GitHub of this project for pinouts and other information. I spent sometime figuring out the connection and testpads on the circuit board, fortunately Amazon has all the important signals broken out, including SWD signals for the microcontroller and JTAG for the wireless module. So it's very easy to hook up your favourite programmer and upload your own program into it. I used the ST-Link v2 on a discovery board to upload a blink program to the Dash Button:

i have the Glade dash button thanks to the wife and it contains BLE. I confirmed this by connecting to my phones BLE. I have yet to see any info on this, I haven't started a teardown to get an answer (way too many other projects going on). Is there any info out there on the BLE element of the dash? As a side note, not all buttons have this as stated by amazon, but as I said above, the Glade button does contain it. So has anyone looked into this? I'll get to a teardown some day but if there's already info out there please point me in that direction

I just received my Amazon IoT Dash button today. If someone hasn't already, I would like to pull the firmware off, and flash the other Product Dash buttons i own. The new firmware will allow you to upload cert/connect to Amaon IoT. Anyone happen to pull the firmware already? Thanks!

Ok, quick update, I was able to successfully flash cottenelle.bin to validate the process for a different dash button, however I f'ed up my IoT button. The hardware appears to be the same, but I shorted something during soldering. Hoping someone else can successfully dump the firmware for the IoT button.

I can't find anywhere else to leave this info, but analysis of Cottonelle.bin shows that the Dash button is using ThreadX as an RTOS and NetX as a TCP/IP stack, together with the WICED SDK. It's going to be hard to write firmware that replaces the original firmware without at least using the WICED SDK, which contains a big binary blob that is the wifi firmware. You'd have to replace the RTOS with something else.

They use the ADMP441 microphone for setup (your phone sends the SSID/Password as a series of 18KHz pulses). There's some possibility that they can make a recording when you push the button (think voice commands) but given the size of the battery and that it is non-replacable they power off as much as possible when the device is not in use.