reverend
Well-Known Member
- Joined
- Apr 22, 2014
- Messages
- 5,715
- Reaction score
- 4,105
- Country
- United Kingdom
- Dash Cam
- Too many
I had a problem with a Transcend card I'd bought a few months ago in a Viofo A119 v3 and turned out it was the same card playing up in multiple Street Guardian cameras as advised by @jokiin and @OCD Tronic
I've done some digging this morning.
Basically for a dashcam you want a card that is able to exceed the video bitrate and get all the data to the card as fast as possible, otherwise you'll get problems like multiple frames dropped, missing video and general misbehaviour of the dashcam. Dashcams are fairly simple devices with low memory and so don't all have the advantage a PC running Windows, MacOS or Linux has where data is written to a very large buffer at high speed and then drained down to the slower storage beneath.
Some cards are able to run very quickly when doing simple sequential writes to free AU, but as soon as the card fills up and starts deleting old data and recycling things can slow down and cause problems at that point as it can't do a large sequential write but has to do more smaller chunks (IOPs).
Class 10 cards should be able to do 10MB/sec minimum (80 Megabits per second / Mbps) which is well above any non-4k dashcam.
I did some testing using h2testw which fills the card with data and then reads it all back to ensure it's valid.
Anyway, here is a graph showing the performance of a baseline card I use which has given me minimal issues - the Lexar 633x 64GB card from before they were sold off:
This graph shows write performance of a steady ~10.5MB/sec over a 90 minute period while the entire card was filled up and then a read performance of around 60MB/sec when the data was all read back.
This is how you'd normally expect microSD storage to work with a fairly flat performance baseline with slower writes than reads.
Now, here is the Transcend 128GB microSD UHS-I U3 A1 / TS128GUSD300S card formatted in the A119 v3.
At first glance it looks similar to the Lexar with similar performance - but check out the actual performance throughout:
There is an initial quick spike of high performance and then throughput plummets and takes over 90 minutes of continuous writes before it gets up to the 10MB/sec as called for by a Class 10 card - it's as though the controller is warming cache up or something bizarre which is all unlikely in a microSD card.
Lets zoom into the start a bit more
That shows the initial spike followed by a collapse in performance for over 90 minutes.
MB/sec and Megabits per second are very different and you'd normally divide megabits by 8 to get MegaBytes /sec - even with these figures above you can see the Transcend card just can't keep up with the bitrate of the Viofo A119 v3 camera in high bitrate mode.
I figured I'd give the card a chance and use the latest SD Formatter software to freshen it up - at this point the card was exFAT and the performance figures did change - here are the initial
Performance is again all over the place for the first 5 minutes - here's the full process.
Again the card takes around 20 minutes before it starts to perform more like you'd expect from a flash based product as though something needs time to warm up fully and it is not meeting class 10, never mind UHS-3 or V30 as labelled (30MB/sec sustained).
If the card is doing wear levelling maybe it's trying to do it during the initial power up but at least this indicates why it does not perform well in dashcams. I've not really paid much attention to microSD cards for the past couple of years and it may be that they don't do wear levelling like SSDs etc due to space constraints. It could even be trying to free some contiguous space up which is why the writes suffer.
I've logged an RMA for this particular card and will be interested to see if the replacement is the same (or whether I get a different card altogether).
If I was being paranoid I'd guess the burst of performance at the start is so that the card looks good in benchmarks such as CrystalDiskMark which generate a smaller subset of data initially and don't tend to last as long as something like h2testw but companies would never do that sort of thing would they
Other causes would be faulty NAND or controller code etc.
Some Ambarella cameras would be able to report slow memory speeds but with all the ways microSD cards can fail or misbehave there is no one size fits all solution - some cards go into read only mode and others will disappear - it's a real crap shoot what happens when you get a card failure.
All SD / microSD labelling should indicate the performace you can expect - more details here -https://www.sdcard.org/developers/overview/speed_class/
The Transcend card I notice does not have Class 10 markings, but does have U3 / V30 which should mean it can sustain a minimum of 30MB/sec writes.
All other cards I currently have here have the Class 10 marking as well as the newer markings other than this Transcend card so there's a chance they already knew there was an issue at time of production.
This post is mainly to highlight that cards do not always perform as you would expect, and to highlight one particular cause of issues.
Here's the blurb from the SD Card Association:
I've done some digging this morning.
Basically for a dashcam you want a card that is able to exceed the video bitrate and get all the data to the card as fast as possible, otherwise you'll get problems like multiple frames dropped, missing video and general misbehaviour of the dashcam. Dashcams are fairly simple devices with low memory and so don't all have the advantage a PC running Windows, MacOS or Linux has where data is written to a very large buffer at high speed and then drained down to the slower storage beneath.
Some cards are able to run very quickly when doing simple sequential writes to free AU, but as soon as the card fills up and starts deleting old data and recycling things can slow down and cause problems at that point as it can't do a large sequential write but has to do more smaller chunks (IOPs).
Class 10 cards should be able to do 10MB/sec minimum (80 Megabits per second / Mbps) which is well above any non-4k dashcam.
I did some testing using h2testw which fills the card with data and then reads it all back to ensure it's valid.
Anyway, here is a graph showing the performance of a baseline card I use which has given me minimal issues - the Lexar 633x 64GB card from before they were sold off:
This graph shows write performance of a steady ~10.5MB/sec over a 90 minute period while the entire card was filled up and then a read performance of around 60MB/sec when the data was all read back.
This is how you'd normally expect microSD storage to work with a fairly flat performance baseline with slower writes than reads.
Now, here is the Transcend 128GB microSD UHS-I U3 A1 / TS128GUSD300S card formatted in the A119 v3.
At first glance it looks similar to the Lexar with similar performance - but check out the actual performance throughout:
There is an initial quick spike of high performance and then throughput plummets and takes over 90 minutes of continuous writes before it gets up to the 10MB/sec as called for by a Class 10 card - it's as though the controller is warming cache up or something bizarre which is all unlikely in a microSD card.
Lets zoom into the start a bit more
That shows the initial spike followed by a collapse in performance for over 90 minutes.
MB/sec and Megabits per second are very different and you'd normally divide megabits by 8 to get MegaBytes /sec - even with these figures above you can see the Transcend card just can't keep up with the bitrate of the Viofo A119 v3 camera in high bitrate mode.
I figured I'd give the card a chance and use the latest SD Formatter software to freshen it up - at this point the card was exFAT and the performance figures did change - here are the initial
Performance is again all over the place for the first 5 minutes - here's the full process.
Again the card takes around 20 minutes before it starts to perform more like you'd expect from a flash based product as though something needs time to warm up fully and it is not meeting class 10, never mind UHS-3 or V30 as labelled (30MB/sec sustained).
If the card is doing wear levelling maybe it's trying to do it during the initial power up but at least this indicates why it does not perform well in dashcams. I've not really paid much attention to microSD cards for the past couple of years and it may be that they don't do wear levelling like SSDs etc due to space constraints. It could even be trying to free some contiguous space up which is why the writes suffer.
I've logged an RMA for this particular card and will be interested to see if the replacement is the same (or whether I get a different card altogether).
If I was being paranoid I'd guess the burst of performance at the start is so that the card looks good in benchmarks such as CrystalDiskMark which generate a smaller subset of data initially and don't tend to last as long as something like h2testw but companies would never do that sort of thing would they
Other causes would be faulty NAND or controller code etc.
Some Ambarella cameras would be able to report slow memory speeds but with all the ways microSD cards can fail or misbehave there is no one size fits all solution - some cards go into read only mode and others will disappear - it's a real crap shoot what happens when you get a card failure.
All SD / microSD labelling should indicate the performace you can expect - more details here -https://www.sdcard.org/developers/overview/speed_class/
The Transcend card I notice does not have Class 10 markings, but does have U3 / V30 which should mean it can sustain a minimum of 30MB/sec writes.
All other cards I currently have here have the Class 10 marking as well as the newer markings other than this Transcend card so there's a chance they already knew there was an issue at time of production.
This post is mainly to highlight that cards do not always perform as you would expect, and to highlight one particular cause of issues.
Here's the blurb from the SD Card Association:
Best Combination between Speed Class Host and Card
Speed Class supported host can indicate Speed Class symbol somewhere on the product, package or manual. Consumers can find the best card for a host via Speed Class symbol match; choose the same or higher class symbol card than class symbol of the host indicated.
For example, if your host device requires a Speed Class 4 SD memory card, you can use Speed Class 4, 6 or 10 SD memory cards. If your host device requires a UHS Speed Class 1 SD memory card, you can use UHS Speed Class 1 or 3 SD memory cards. Video Speed Class is also the same. Note that expected write speed will not be available by a combination of different class symbols such as Class 10, U1 and V10 even those are indicated to the same 10MB/sec write speed.
Fragmentation and Speed
By repeating deletion and write of files, data area is gradually fragmented and it influences write speed. Generally, write speed to a fragmented area is slower than sequential write speed due to flash memory characteristics. In an era when memory capacity is not large enough, fragmented write needed to be considered. However, high capacity memory card is available at this time, Speed Class write is defined to perform sequential writes to a completely un-fragmented area (called "Free AU"). It makes Speed Class controls of host easy. On the other hand, even unused memory exists in total, there is a possibility that host cannot perform Speed Class recording. In that case, data arrangement to reduce fragmented area or move data to anther storage to re-format the card will be required. Video Speed Class supports "Suspend/Resume" function that can stop and retrieve sequential write. By using the function, it is possible to improve memory usage ratio considerably.