The peripherals across the AVR® range are identical. Electrical characteristics, such as pin drives, are identical. Code can be reused and easily ported between all AVR parts. Even the smallest of the tinyAVR® devices share the same design blocks and peripherals with much larger megaAVR® devices. This offers unlimited possibilities for code re-use between tens of different AVR microcontrollers that have different memory sizes, different I/O pin counts and/or different complexity and peripheral counts. If the user is familiar with one megaAVR part, they will quickly make friends with any tinyAVR device, and vice versa. Additionally, many tinyAVR parts have three different memory options while the peripheral set and pin count remain the same. This allows easy software customization either by adding software features, or removing those.