I’d figured out that a 128 GB micro sd card would yield about 16 hours of video on the ROAV Dashcam which was good enough that I could make most of my daily long drives without overwriting anything.
I had a PNY 128 GB drive that I’d been using in my GoPro so I put it into the ROAV Dashcam. The ROAV requires the card be formatted as FAT32 and not the newer exFAT, but the dashcam was able to do the formatting.
After a couple of months of use, I got a strange error on the ROAV saying that the memry card was corrupted and it needed reformatting. Before I did that, I put the card into my computer and tried to copy all the data off it. I ran into an issue with some files being corrupted, and then found I was not able to reformat the card in the computer, as it was somehow being reported as read only.
Because there is no physical write protect slider on a micro SD card, I fired up diskpart and issued the commands that should clear the write protect status on a drive.
It appeared to work, but then checking the status after issuing the command attributes clear disk readonly showed that no changes had really happened.
I’d been frustrated trying to figure this out for the past week. Then I came across an article in comp.risks that described exactly this sort of issue.
Micro SD cards silently switching to read-only when they’re “too old”
Mon, 16 Jul 2018 23:38:44 +0200
The 64G Patriot micro SD I had been using in my cell phone from mid 2014 just decided to turn itself into a read-only memory card. From what I read, it most likely reached its maximum number of uses, as it happens at least with some Samsung cards too. It would be to protect the card from losing all its data, after its cells were erased "too many times" (limit number depending on the card, and appearing to be in the order of 10-100k). And according to Internet forums, and card reviews on Amazon, it looks like it's getting more and more common! A very bad point is that there were no error messages at all. I added music files before a trip, but I had none of the new files available later so at first I thought I didn't do it correctly (even if the transfer was fine, it could for example have been to my card backup on an hard drive instead of going to the actual card). Then, despite the pictures still being taken correctly by my phone (browsing was OK, able to delete the bad ones...), I lost all of the new ones when my phone rebooted. So they were only in a cache memory somewhere, but nowhere on the SD card (not found by deep recovery tools either). More fun, the older ones I deleted came back during the same reboot... I understand it would be bothering to have an error message at each card access, but at least I would have known to change the card and would not have lost 3 days of pictures! So beware...
I’ve written low level code dealing with flash memory in the past, so I understand that there are only so many rewrite times each sector can handle. I’m also familiar with the differences in file systems between FAT32, exFAT and NTFS. I don’t believe MicroSD cards have any sort of wear leveling algorithms in them that a full fledged SSD has between the flash and the controller. The fact that ROAV puts their constantly changing data two levels deep in the directory structure at least means the data for the root directory isn’t the constantly erased and overwritten sector, but it does mean that the directory structure is getting re-written each time a new file is created. They probably aren’t writing the directory data to a new sector each time, but just overwriting the old location, possibly accelerating the death of the microsd card. because the cluster size on a 128GB Fat32 partition is fairly large, at least 32KB, it holds a lot of directory entries in a single sector.
I had a 200 GB card that I thought I’d replace the failed drive with. The ROAV attempted to format it but reported that it couldn’t. I’m thinking that they simply cannot handle a drive bigger than 128 GB.
Since I had a second 128GB card, I put it into the dashcam. I’ll be interested in seeing how long it takes for it to report as non-functional.