Arduino software internals : A complete guide to how your arduino language and hardware work together.