Working set: -ATtiny45: small (66mHz peripheral clock-good for highspeed PMW, 5 I/O pins, go for 4kB) -ATtiny44: medium (less good for PMW, 11 I/O pins, 16-bit timer) -ATmegaxx8: large (20 I/O pins, USART, 3 timers, 16kB memory): 48, 88, 168, 328 -> just extra program memory -extra variants: ATmega168PA-10PU, ATmega168-AU... -V: run at low voltage / reduced speed (less good) -P&V: older -A&PA: newer, run full range on speed and voltage / less power (P) -> good bet -extension: package size: -PU/PDIP: largest/through hole -AU/TQFP: 1.0mm spacing surface mount (SMT) -MU: hard to solder by hand -number in extension: speed grade (run up to x MHz), no number: 20MHz at 5V (full rated speed) Pins in groups of 8 statePins = PINB; PORTB = 42; (assignment) Core: -CPU -Memory: flash (doesn't disappear when power goes out), RAM, EEPROM -Clock (8MHz) -> CPU clock at 1MHz / multiple clocks derived from master clock source -Output pins: display either VCC or GND voltage (analog get from PWM) -Input pins: greater or lower than VCC+GND/2 Input: Button: VCC to button & input pin / other side of button to GND through resistor Peripherals: -Serial communication: -Plain-vanilla USART (computer, GPS etc) -SPI (ultra-fast & short distance) -12C (moderate amount, accelerometers for ex) -Analog to Digital: ADC (oversampling and exponential smoothing) -Interrupt service routine (drops current, executes when condition met and resumes) -Timers/counters: count pin activation (timer when hooked to clock, and output to OC pins for subroutines)