I had an idea to use Amazon dash buttons for presence tracking in my smarthome. Essentially, I can press a button when I go to sleep/wake or leave/return to the house. Unfortunately, since Amazon has bricked their buttons I sought out some sort of product replacement. After searching around, I wasn’t satisfied with really anything I found. It was all either too expensive or too many features for what I wanted to use it for.
There are a couple of great projects that have been documented on the subject:
The way these work is to use an ESP01 that connects to a WiFi network and sends a HTTP request to a specific endpoint. My main issue with these solutions were their power sources. One is using a usb power supply and the other has a coincell. I was attached to the idea of using a single triple-a battery like the original dash button.
Since the AAA voltage range is ~1-1.5v and the ESP boards need ~3.2 volts I would need to figure out how to boost the voltage.
With a little searching I learned about the MCP1640 which are readily available from DigiKey.
Looking into the MCP1640 datasheet there’s this great schematic and even a suggested part/mfg list to source the supporting components from.
Since this circuit requires way more discreet components than any of my projects before I figured now would be a good time to try to learn how to create a PCB design for manufacturing. Additionally, I could swap out the ESP-01 for an ESP-12 which was made to be attached to PCBs.
I went looking for Eagle but learned they had been bought out by Fusion-360 and since I was already familiar with the program I decided to use that instead of KiCad.
After waiting for a delivery from Digikey I tested the circuit on a breadboard, and then I was ready to get to work on the PCB design.
How an electronics project fits together in Fusion
In Fusion there are quite a few pieces that you must know about in order to create an electronics design. For me, I needed to:
- Create an electronics library
- Create an electronics design
Fusion has a robust component library, but this project had many components that I had to create.
Create Custom Components
What needs to be done to create a custom component really depends on what you’re working on. The MCP1640 component for example was able to be created with the Package Generator in Fusion.
The battery clips and the ESP-12 were more complicated. In general this was the workflow I executed:
- Create a component symbol
- Create a component footprint
- Create the component package
You can import a fusion design or mesh for the package step and align it with your footprint. I didn’t end up needing to do any 3D design for any of the components in this project.
You can also link more than one package/footprint with a symbol. I planned on using the through-hole battery clips and trim the backside manually, but it would be easy to create a new SMD package and update the board to use that instead.
The electronics design is more or less a file that maintains the relationship between your schematic, pcb and 3d pcb.
Once I managed to get all my dependencies set up, this step was a breeze.
The first step was to link my electronics design with my case that contained a sketch for the overall shape of my desired PCB. Arranging my components and even basic routing was pretty obvious. The biggest difficulty I had here was actually understanding the layers. After watching a webinar I was able to suss out how to create top/bottom silk for the battery and move connections from top to bottom with vias.
This might have been the easiest part of the entire project! Once all the prior steps are complete, Fusion automatically generates a 3D PCB that can be used to complete your assembly.
Unfortunately it was about this point when the Ikea Shortcut button was released and did everything this project did better. With a slightly different form factor and battery, but Zigbee is better than wifi, it reports its battery usage, we can detect a long press, and it’s somewhat water resistant. All this at a price that this project can’t really beat.
If you’d like to check out the design, or you want to create your own dash button clone for some reason you can download the files here. I have no idea how usable they will be after the Fusion export process, however.