The Adafruit METRO is an Arduino Uno equivalent board designed with a few extra features to improve upon the original Uno. We sure love the ATmega328, and we use it a lot for our own projects. The processor has plenty of GPIO, analog inputs, hardware UART, SPI and I2C, timers, and PWM galore. All the hardware you need for most simple projects. When we need to go small, we use a Metro Mini which crams all that Metro goodness into a breadboard-friendly stick. For more advanced projects, we upgrade to the Metro M0 Express, it is shield compatible and comes with a massive memory and speed upgrade and even runs CircuitPython. With Express you'll get where you're going even faster!