4G eMMC Durability?

I have about 150 beaglebone’s running wild over a large geographical area, basically all over British Columbia. When I first deployed them last year they all started failing within about a month. That amounted to a lot of needless driving, hair pulling, forehead banging and just general over anxiety - its a wonder I’m still alive.

I eventually ended up using two uSD cards, one with a read only mounted filesystem and the other used for writing data (ext4). My beaglebone’s are paired with a msp430 so I have managed to ensure they also receive a nice, clean power down. So far its been about a year and I’d say well over 95% are still working fine. However, I recently talked with a tech support from an industrial SD card manufacturer and he informed me that SD cards that are only ever read to can also fail eventually. He suggested that you write a little bit once in a while to activate the wear levelling mechanism. As things seem to be working (for now) I haven’t drummed up the courage to try writing again.

Now we have the beaglebone black with 4G eMMC and I’m wondering just how much more reliable eMMC is compared to the stock Kingston 4GB cards in read only mode that came with the Beaglebone. I know eMMC is supposed to be much improved having an integrated controller but wonder if in a read-only scenario it makes any difference? Furthermore, I wonder if others on here can offer any experiences or comparisons of eMMC to say SLC memory?


Reliability at the cell level is the exactly the same. he controller is exactly the same.

However, having more unused space enhances the wear leveling where cells get used less often.

It does not however prevent issues with data corruption for any Linux issues.


I wasn’t seeing data corruption due to Linux but from the cards going completely kaput. No amount of effort seemed to restore them. I was under the impression the eMMC used MLC rather than TLC or MBC? That would imply a different controller and ideally a much longer lifespan.

eMMC and SD cards are almost the same as Gerald said.

eMMC is based on MLC NAND

MLC NAND enables around 10k write cycles

SLC NAND enables more than 100k write cycles. That is why we use only SLC in our industrial products. I’m sure when you supply products with 5 year warranty you don’t want to discuss “eMMC/MLC reliability”. Less risks - less profit lost.

MLC NAND enables around 10k write cycles
SLC NAND enables more than 100k write cycles.

And, of course, these are the number of cycles for whole erase blocks. If you write one byte and flush the operation to your flash disk, you’re actually writing the erase block size (say 4MB’s), resulting in some “write amplification factor”.

So, many continuous small writes, that are flushed to disk, can very quickly touch all of the remaining erase blocks on your disk. For log file messages a few hundred bytes each, each flushed to disk as most log messages are, with a best case memory controller that touches the least used block next, and a 4MB erase block size, you’ll have written 4GB to your card after 1024 messages. So you get 10 million log file writes if you have a card with 4GB of free space. If your OS partition is using 2GB then you get around 5 million.

If you’re writing to flash of any kind, you cannot think of it as “will my product fail”. You must think of it as “when will my product fail”, because that’s the nature of the medium. Sometimes it’s many years. In our case, it was many weeks. Then we reduced the log messages making it months. Now, we use a read only mount, so it’s based on the read disturb. But, even though it’s a read only, it will still eventually fail. But, that’ll be long past our support life.

The undeniable rule of flash: Your flash storage will eventually fail, because you’re destructively blasting electrons through glass (oxide).

how you created your rootfs ext4 format?
your files are in the same partition rootfs?