The Foundations section gives you some specific knowledge about the principles and techniques that are behind the Arduino platform, its whole family of boards and the software you use to tell your boards what to do.

If you want to get some knowledge before you start using things, this is the right place. If you want to jump on tinkering with your board visit the Getting Started page.



  • Digital Pins: How the pins work and what it means for them to be configured as inputs or outputs.
  • Analog Input Pins: Details about the analog-to-digital conversion and other uses of the pins.
  • PWM: How the analogWrite() function simulates an analog output using pulse-width modulation.
  • Memory: The various types of memory available on the Arduino board.

Do you want to develop further the Arduino Hardware, or just build an Arduino on a breadboard? Check out the Hacking section.


  • Language Reference: Discover the what each term of the Arduino code language means.
  • Variables: Understand how to define and use variables in a Sketch.
  • Functions: Learn how to define and use functions in a Sketch.
  • Library: Using and installing Arduino Libraries.
  • Cores: Need to add a new board to the Arduino Software? Install the relate core and manage it.
  • Vidor HDL basics: Learn the basics of FPGAs programming language.

Looking for help on how to extend the Arduino Software (IDE), like write your own Library? Check out the Hacking section.

Visit the ITP Physical Computing site for more resources on learning the basics of Electronics, Sensors, Serial Communication, Motors and more.