ZigDuino Update II

The basic hardware and Arduino core functionality works; the only thing that I have not ported yet is the Tone library. During the process, I discovered an unfortunate limitation of the analog input stage.

Every other ATmega I've worked with was able to use the full power supply range as a reference voltage for the ADC. The ATmega128RFA1 is limited to 1.8V maximum, and further cannot use an external reference with a higher value. This means that many analog sources will need some kind of voltage division in order to function.  On the positive side, the chip has a precision 1.6V internal reference that's trimmed to ±1 LSB. That's nice for high precision capture, but the overall voltage limitation is annoying.

At the suggestion of one of the people at a flash talk I gave about the ZigDuino at Jigsaw Renaissance last month, I've replaced the zeners for pin protection with diodes to the power & ground rails. That clamps the voltage to within the power supply range plus a schottky diode drop in each direction, which the lines on the chip can handle without complaint. The diodes I selected are beefy enough to protect the pins from over/under voltage spikes of at least 30V. As soon as I'm able to functional test the RF output, then I'll respin the board and finish unit testing the core.

At this point, I need help writing Arduino wrappers for the stock Atmel but everything else is going swimmingly.