05/16/2015 at 00:54 •
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:
05/17/2015 at 21:15 •
Here is the firmware of a cottonelle button, dumped using ST-Link v2:
Skipping through the firmware and sure enough there are some juicy bits inside:
As for the debug serial output under a number of situations, see here.
05/18/2015 at 00:05 •
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.