Someone left me a comment recently complaining that surface mount parts are too difficult to work with. I don't find this to be the case - most of my work has been done mostly in surface mount only for a few years. This has left we with a decent stock of larger DIP parts, and the opportunity for a challenge much more difficult than soldering the tinniest 0201 resistors.
Sure, it isn't the smallest possible game - you could somewhat easily make a PCB and use the same BOM here in even smaller SMD packages, but that's hardly the point now is it?
Here is a video of the assembly process. There is some gameplay footage around 6:10. I don't do anything special in order to solder this, just a fine iron tip, hot air gun, flush cutters, x-acto knife, and some tweezers. I also don't use any optics, though it may help that I'm slightly nearsighted. And also some flux jelly (that's the real secret weapon).
Chip is an AtTiny84A in a DIP-14 package, since it's what I had on hand. Programming is done using the Arduino IDE with [https://github.com/SpenceKonde/ATTinyCore]. I don't use the bare Arduino IDE very much anymore (platformIO + vscode is a much better experience), but I wanted something which was extremely quick to set up (and it was). I knew I wanted a few LEDs and some buttons, but I wasn't really sure what game to make. If I could fit 4 of each than I could do Simon. The original Simon used a TMS1000 microcontroller, so the attiny is surely overkill for processing power.
The hardware is just: 4 pins with an LED with resistor to GND and 4 more pins with a switch to GND. If you want sound, that's another pin with a resistor and speaker to GND. It doesn't get any easier than that.
Goals:
- functional (obvious)
- should be self contained (except for power)
- should fit inside original dimensions of chip
- should look like a chip when finished (more or less)
- no soldering to any of the pin surface outside the chip
Milling was done with my CNC mill, but with the motors disconnected and manually turning the knobs. Milling cutter is one of those awful burr style super Amazon end mills (the kind with the fake painted on "coating"). They are cheap, but I only had a few on hand and so still did not want to break any more than I had to.
To the depth of the leadframe, everything is fair game except for around the die, and just beyond it where the bondwires are. It is all to easy to drive the mill too far and sever a bond wire, which are so small you'll never realize you hit one. I also discovered that the die was shifted to one end of the chip, and it was the end where I needed to access the 6 most inner pins, rather than just the 4 pins on each end. You also can't mill away everything - there still has to be enough material to hold the remains of the package together.
Here is an X-ray of a chip (image not mine; found it here [http://www.smtjs.com/d/file/jszc/2017-07-10/8fd97ea475a8c9dafcd3c54448004f95.jpg]. The tiny hair-like things are the bond wires. They are all that connect the chip to its pins. Consider how you would mill away the package in order to access those pins from the inside. You can actually do the same thing from the bottom of the chip (the bond wires are only on the top, and so you can mill across the whole surface), but that's a far less ideal location to put a user interface.
This naturally leads to a pocket at either end of the package, just big enough to hold a pinch of SMD components.
Between the careful monitoring of what I was doing, increased nervousness in trying not to break a bond wire or the bit, controlled breathing to blow away obscuring dust, and an awkward hunched over sitting position so I could reach the knobs, it made for a very uncomfortable milling experience!
To solder wires onto the exposed leadframe, I found the best technique was to apply some flux, then drop in a tiny slice of solder wire. Then, you heat the pins externally with a hot air gun. The heat will travel up the...
Read more »
You sir, are potty! I love it! I am totally in awe.