Digital Input/Output Analog Input/Output Dealing with Events & Interrupts Communicating with the cloud Serial Communications Finite State Machines