The STM32 connectivity line also embeds a bootloader so a blank or programmed device may be programmed using the USART, CAN, or USB device ports. When connected to a PC with USB, the STM32 uses the Device Firmware Upgrade, DFU class. This feature is very useful for in-application-programming or field software updates. The communication interface selection is automatic as the bootloader detects which of the three supported peripherals is active. Two packages are available: a 10mm x 10mm LQFP64 package and a 14mm x 14mm LQFP100 package. Each package offers up to an 80% I/O ratio, meaning that on a 100-pin package, 80 GPIOs are available. Most of the I/Os are 5V tolerant. All I/Os also support 20mA sink and source current. Finally, the devices are available in two temperature ranges: from -40 to +85°C, and for the most demanding applications, from -40 to +105°C.