Maybe you’ve been using codebender for a while and have had great success making things. You write the code, click the magic ‘Run on arduino’ button and a few seconds (and some blinking LEDs) later your board is programmed and you enjoy the fruits of your efforts. If you have ever wondered how that generated machine code gets its way into your board, this article is for you.

Arduino did an excellent job hiding the inherent complexity of compiling code for embedded microcontrollers (or lately microprocessors). This allowed anyone to easily program their boards without needing to understand how code and libraries get compiled to the blob of machine code that gets its way into your board to do ‘stuff’. Heck, you don’t even need to know what a microcontroller is anymore!