AVR Satellite - Epilogue
This page is about the older, unreleased AVR-based Satellite design. If you are after the latest ARM-based one, click here instead for an overview, or here if you are interested in supporting the production of the newer Satellite System. If you're really here for the older, unreleased AVR-based Satellite, read on.
Developing the older AVR-based Satellite system was an educational experience.
One of my original design goals was to develop a board that could be soldered using only a cheap soldering iron and inexpensive through-hole components. The reason for this goal was to make it cheap and easy for people new to electronics to be able to construct and use their own boards.
It turns out that this is incredibly restrictive and the resultant board was developed with some terrible weaknesses.
Many modern parts simply do not have through-hole variants at all. This places severe restrictions on the parts that can be used, and makes certain parts hard to source.
The lack of options in parts eliminates some of the better MCU candidates, and this hurt the design. For example: Considerable effort was put into creating a bus design that would allow the ATmega328 to drive far more inputs, outputs, and ADCs than it otherwise should be able to. However, if I dropped the through-hole requirement, there would been many more options available. I could have used a superior MCU in the same family, perhaps the 100-pin ATmega1280. With the large number of additional GPIOs and onboard ADCs, it would would have eliminated the need for external latches, analog mux/demux, and the entirety of the bus design. The cost of the MCU would have gone up a fair bit, and the parts might have been harder to source. However there would be considerably fewer overall parts required, and the resultant system would have been smaller and simpler, yet considerably more powerful than the one I came up with. In fairness I did not know about the parts until later in the design, and by that point I wasn't prepared to drop the through-hole requirement.
Another weakness came about from the limitations of the MCU itself. To get above 12MHz (the limit for 3.3V) to 20MHz it is necessary to bump the voltage up to 5V. This ends up forcing a bus interface requirement between the Pi and the board to allow for cross 3.3V/5V communication. This was a terrible weakness for a design that was supposed to bridge the two. At this point, with the benefit of hindsight, if I was going to stick with the AVR family, I should have just left things at a maximum of 12MHz. The possibility of running at 20MHz was not worth forcing a bus interface onto the design.
The full solution to this problem is to move to parts that have the necessary speed and also run fine at 3.3V. Once the through-hole restriction was dropped, this led to many more options. This eventually led me to take the plunge into using ARM MCUs. This work led to my next design, which you can read about here.
Another mistake was trying to design a board that can be assembled with a cheap soldering iron. With the benefit of some experience, I can now state that the only place for a cheap soldering iron is at the bottom of a bin, ideally in small parts or encased in concrete. Instead, recommending a low-end temperature-controlled soldering iron, stand, sponge, wick, and flux at a minimum would have been a better starting point. This would have been more than enough to dive into SMT. Again, this was inexperience.
There are a handful of other weaknesses in the design, but I'd say the above covers the most important ones. Still, I did learn a lot during the development of this initial Satellite system.
I have since moved on to developing an Atmel ARM-based Satellite system (click here for more).