For the final project of Homemade Hardware, I continued my idea of making PCB board itself alive with connecting to other different boards. In order to do this, I first tested with Adafruit DRV2605L Haptic Motor Controller:
So I have one main board which will vibrate in different ways when connecting to different assistant boards. And the assistant boards are actually resistors of different values which will give the main board different analog read value.
Then after this, I tried to program the atmega328p-pu. This is how it works:
After this, I designed my pcb board. In order to make it works, I designed 2 versions with atmega-au and atmega-pu. Here are the main parts that I’m using:
- DRV2605LDGSR digikey link
- VIBRATION MOTOR digikey link
- Resistors 560/680/1k/3.3k/4.7k/10k
- Capacitors 0.1u/1u/4.7u
- JST connectors & cables
- AU version
- PU version
An important thing that I learnt from this process was that the “bottom” doesn’t need to be mirrored
For the assistant boards, I just use simple through holes
- Use othermill to cut the outlines and holes
2. Acid etching
After all this, my boards looks good. However, without surprise, it doesn’t work, even though I did BEE test at every steps and tried so hard to finally got the tiny chip pins not touching each other. So I spent a whole night debugging.
- First, I tested the voltages,seems right.
- Check the analog read voltage and calculate the value again. I found the real read on smd is lower than the breadboard. So I adjusted my codes. Also some circuit on the resistor boards are not soldered well. Resoldered them.
- Reprogram atmega, then make it work with the breadboard again. Not the program problem.
- Put the atmega back to the board again. Connected the breadboard scl and sda wire to the pcb circuit. Not working. Something’s wrong with the pcb circuit.
- BEE test again. Found other person do it! Then found the sda pin is touching the vin pin on the tiny chip.
- Spent forever fix that then it’s still not working. Bee test directly on the pin, found the gnd pin is not really soldered on the circuit.
- Fixed the gnd pin with manually soldering then still not working. Found the motor- pin is also not really soldered well.
- Manually soldered again.
- IT WORKS!