I’m going to do my best to summarize a few things. There isn’t one right answer here.
This is the diagnostic data from the card that shipped with a RoboRIO 2.0. Some SD Cards support providing this data as part of something known as CMD56 - it is part of the SD specs but it is manufacturer specific as far as what it outputs. The values here can be used to calculate “remaining life” of a card if you know the rest of the specs.
This data came from the Apacer SDSMART tool for the Apacer card that I got in a RoboRIO 2.0:
>>======================================================================<<
[Date: 2021/10/11]
[Time: 00:53 pm]
< SSD drive #0(E:)>
*------------------------------------------------------------
1. Flash Type : Toshiba MLC_16K (15nm)
2. FW Version : V82.105
3. Total Power Up Count : 38
4. Abnormal Power On Count : 0
5. Average Erase Count : 2
6. Maximum Erase Count : 21
7. Spare Block Count : 32
8. Initial Bad Block Count : 7
9. Later Bad Block Count : 0
*------------------------------------------------------------
You’ll notice a few things. Particularly the one that everyone will potentially freak out about is the Initial Bad Block Count. It should NOT scare you or worry you at all. It’s small. Pretty much all SD Cards will ship with some bad blocks. It’s rare to find any that don’t. It’s when it starts growing that there are concerns but as you can see, there are spare blocks just for that purpose and each one of those blocks will have a healthy lifetime of many writes and erases.
This is the Datasheet for the card based on the part number: https://www.elvac.eu/ipc/download/APACER/datasheet/MicroSDHC3.0_H1-SL_15nm_AP-MSDxxGXA-2XTM_Spec_rev1.2.pdf
You’ll also notice the card that ships with the RoboRIO 2.0 is MLC NAND flash from Toshiba. Toshiba makes memory and supplies it to a lot of companies. That being said - the firmware it provides is for something known as SLC-Lite. That’s the Apacer branding for PSLC (Pseudo-SLC): SLC-lite - Technology - Apacer for Industrial – Leader in industrial SSD and DRAM module
In general, most consumer cards are not SLC (Single Level Cell) NAND but MLC (Multi Level Cell) NAND. There is also TLC - Triple Level Cell and 3D NAND… and if you really want to look at weird stuff go look at Intel’s Optane but you won’t find that in a micro SD card.
MLC means that instead of storing one bit per NAND cell, they will store multiple bits. I need pictures to understand things and this one does a decent job of it:
What you can see is that the voltage level sets the bit values of the NAND cells. We can get PSLC/SLC-Lite by ignoring the second bit and just treating MLC like SLC… but the thing is, it’s not SLC NAND.
Now, that being said - engineering is about compromises and understanding. SLC NAND is expensive. It costs $$$$ money. True 8GB SLC cards from Mouser and Digikey go for $100+ now and they are supply constrained so don’t expect those prices to start falling anytime soon.
SLC NAND is more reliable in terms of operating conditions, write/erase cycles, power failures, and because it’s a premium industrial product the controllers are likely to be better too and provide additional error handling. It’s also a lot more expensive.
So do you REALLY need true SLC flash? Probably not. I suspect most teams don’t even need 4GB of space on the RoboRIO given that we’ve been living with less than 512MB for so long that it just doesn’t matter. It’s highly likely they will be able to make do with PSLC NAND.
So it’s entirely up to the team and what they are willing to spend. The cards shipping with the RIO and much of the lower cost “industrial” pSLC/SLC-Lite type cards will likely be a good compromise.
EDIT: Worth pointing out that I work for a company that recently told a large customer base that our operating system could no longer be booted from SD card storage.