A collection tutorials for using assembly language on the command line to program AVR microcontrollers such as the ATmega328p microcontroller used in the Arduino. We construct the circuits on a breadboard, write the assembly language programs, upload it to the microcontroller, and show pictures of the steps and the final result. After completing these these tutorials you should be comfortable writing assembly language programs for any of the AVR microcontrollers without using an IDE. You should understand the fundamentals of the instruction set, the memory map, the way that macros, pointers, and lookup tables work, and you should be able to make many of your own interesting projects using the AVR assembly language and have a lot of fun doing it.