Flash memory selection is one of the most consequential decisions in embedded system design. The wrong choice can impact boot time, data logging bandwidth, wear leveling complexity, and long-term reliability. There are three primary flash memory technologies relevant to embedded and drone applications: NOR Flash, NAND Flash, and eMMC.
NOR Flash: The Firmware Storage Standard
NOR flash provides random read access at the byte level, making it ideal for storing executable code. It is directly addressable via an SPI or QSPI/XIP (eXecute-In-Place) interface, meaning the MCU can run code directly from NOR flash without copying it to RAM first.
When to Use NOR Flash
- Storing bootloader and main application firmware (XIP)
- Configuration storage that needs fast random read
- Small data logging buffers (< 128 MB)
- Parameter storage on flight controllers (PID gains, motor curves)
Popular NOR Flash Chips
| Part Number | Capacity | Interface | Max Read Speed |
|---|---|---|---|
| W25Q128JV | 128 Mb (16 MB) | SPI / QSPI | 133 MHz |
| W25Q256JV | 256 Mb (32 MB) | SPI / QSPI | 133 MHz |
| GD25Q128C | 128 Mb (16 MB) | SPI | 120 MHz |
| MX25L12835F | 128 Mb (16 MB) | SPI / QSPI | 108 MHz |
NOR flash endurance is typically 100,000 program/erase cycles per sector, with data retention of 20 years at room temperature. For firmware storage (which is written rarely), this is essentially unlimited.
NAND Flash: High-Capacity Data Storage
NAND flash offers much higher density at lower cost-per-bit than NOR, but with a more complex interface. NAND is accessed in pages (typically 2–16 KB) and erased in blocks (typically 128–512 KB). It does not support XIP and requires a flash translation layer (FTL) or file system (e.g., YAFFS2, LITTLEFS, JFFS2) to manage bad blocks and wear leveling.
NAND Flash in Drone Applications
Raw NAND is used for high-bandwidth flight data logging. A 4 GB NAND chip can store hours of high-frequency IMU, GPS, and control surface data. ArduPilot and PX4 both support raw NAND logging with built-in FTL.
Key challenges with raw NAND: bad block management (all NAND chips have factory bad blocks plus accumulate more over life), ECC requirements (modern NAND requires hardware or software ECC to correct bit errors), and the need for a proper wear leveling algorithm to prevent localized exhaustion.
Popular NAND Flash Chips
| Part Number | Capacity | Bus Width | Page Size |
|---|---|---|---|
| MT29F2G08ABAEA | 2 Gb (256 MB) | 8-bit async | 2 KB |
| MT29F4G08ABBDA | 4 Gb (512 MB) | 8-bit async | 4 KB |
| K9F2G08U0C | 2 Gb (256 MB) | 8-bit async | 2 KB |
eMMC: NAND with a Built-In Controller
eMMC (embedded MultiMediaCard) packages NAND flash with a dedicated flash controller, bad block management, wear leveling, and ECC — all inside a single BGA package. From the host's perspective, eMMC looks like a simple block device with a standardized MMC interface, similar to an SD card but soldered directly to the PCB.
Advantages of eMMC Over Raw NAND
- No FTL required in host firmware: The controller handles all wear leveling internally
- Standardized interface: 4-bit or 8-bit MMC interface, well-supported by all major RTOSes and Linux
- High sequential write speed: 100–400 MB/s for modern eMMC 5.1
- Industrial-grade options: SLC NAND eMMC with -40°C to +85°C operation and 100K P/E cycles
eMMC in Drones and Robotics
eMMC has become the default storage solution for companion computers running Linux-based flight stacks (e.g., NVIDIA Jetson Nano, Raspberry Pi CM4, Qualcomm RB5 Flight). It provides ample capacity (8–128 GB), fast boot, and reliable operation in the temperature ranges typical of drone operation.
Popular eMMC chips include the Micron MTFC8GAKAJCN (8 GB) and Samsung KLM8G1GETF (8 GB). For automotive-grade applications, industrial variants with SLC NAND are available with extended temperature and endurance ratings.
Decision Matrix: Which Flash Type Should You Choose?
| Use Case | Recommended Type | Example Part |
|---|---|---|
| MCU firmware storage (XIP) | NOR Flash (SPI/QSPI) | W25Q128JV |
| Flight controller configuration | NOR Flash | W25Q64JV |
| High-bandwidth data logging (RTOS) | NAND Flash + FTL | MT29F4G08 |
| Companion computer OS (Linux) | eMMC | MTFC8GAKAJCN |
| Large media storage (video) | eMMC or SD card | KLM8G1GETF |
| EEPROM replacement (config only) | SPI NOR Flash (small) | W25Q16JV |
Temperature and Endurance Considerations
For UAV applications, temperature range matters. Most commercial NOR and NAND flash is rated -40°C to +85°C industrial grade. eMMC chips vary: consumer grade is 0°C to +70°C, industrial grade is -40°C to +85°C. Drones operating at high altitude (where temperatures can drop to -20°C) or in hot desert climates need industrial-grade parts.
Endurance (P/E cycles) is critical if your application involves frequent writes. A flight controller writing blackbox data at 2 KB/s for 100 flight hours is writing roughly 720 MB. Even a 100K cycle NOR flash with 256 KB erase blocks can handle 25 million erase cycles on that block — far beyond the application lifetime.
Source Flash Memory for Your Embedded Project
UAVCHIP stocks W25Q, GD25Q, MX25L NOR flash and MT29F, K9F NAND flash in all capacities. Also available: MTFC and KLM eMMC for companion computer designs.
Browse NOR Flash Browse NAND Flash Browse eMMCFrequently Asked Questions
SPI (Serial Peripheral Interface) NOR uses 1-bit data lines (MOSI/MISO), while QSPI (Quad SPI) uses 4-bit data lines simultaneously, achieving 4x higher read throughput. W25Q128JV, for example, supports both — single SPI at up to 80 MHz and quad SPI at up to 133 MHz. Most modern MCUs with OctoSPI or QUADSPI peripherals can use QSPI for much faster XIP performance.
Functionally yes — eMMC uses a compatible protocol to SD/SDIO. However, eMMC is soldered directly to the PCB (not removable), uses a BGA package, and requires a proper PCB footprint. For designs where storage must be field-replaceable, use a proper microSD socket instead. For designs where storage must be fixed (drone, IoT device), eMMC is preferable for vibration resistance and reliability.
JEDEC endurance refers to the number of program/erase (P/E) cycles a flash cell is guaranteed to survive as defined by the JEDEC standard (JESD47 for NOR, JESD68 for NAND). Higher P/E cycle ratings mean longer service life for write-intensive applications. SLC NAND typically rates at 100,000 cycles, MLC NAND at 3,000–10,000 cycles, and TLC NAND at 1,000–3,000 cycles.
Yes — they are pin-compatible and protocol-compatible. The JV suffix denotes the newer JEDEC 1.8V / 3.3V dual-voltage variant with improved performance. The FV is an older 3.3V-only part. For new designs, prefer the JV variant as it offers wider supply voltage compatibility and slightly better performance.