Main Site Documentation

SD CARD speed and HAPPY EASTER^^


#1

Hello all and HAPPY EASTER!!!

I’m using Fez Panda 2. I’m doubted is there any possible way to make the SD CARD write faster? Just for info, I’ve just update the kits to the latest firmware today, so I don’t think the firmware is the problems.

I’ve tested the code from http://www.tinyclr.com/forum/1/1858/ and results show below.

Write Speed >>>
Total time: 00:00:32.0845813
Total time in seconds: 32.0845833 seconds
Speed: 31.9156399 KBytes/s <— I need pretty high speed at least 200KBytes/s
Testing read…
Read Speed >>>
Total time: 00:00:03.2108907
Total time in seconds: 3.21089077 seconds
Speed: 318.914612 KBytes/s

anyone, please help :’(


#2

Welcome to the community

Take a look at this http://tinyclr.com/forum/1/1858/


#3

Thanks Gus^^. I’ve read the link and tested my sd card with the code. I found that my SD card was too slow, so that I hope I can seek some help or advice here on how to make it faster.


#4

You do know that SD cards come in different speeds?


#5

yes. I think the best way for me to try now is the get a class 10 micro SD card and try it out. Thank you so much.

By the way, Do anyone knows what is the maximum Speed to write using sd card (on the Fez side) can be achieve?


#6

There is no number because of the so many variables that come in play.


#7

okie. Thank you so much.


#8

one word of caution: you should remember that SD card is not a “fast data storage” device. If you need to handle fast bursts of data you should be ok, but constant high speed writing is not likely to be something you’d want to maintain. it would probably be worth telling us what you’re trying to achieve, because perhaps a faster SD card is not going to be possible; but as Gus’ linked post shows, you can optimise it with some intelligent coding based on what your code does.


#9

I’m trying to logging multiple sensor data to the sd card with high sampling rate. Let say, 8000 samples/second,and 40-50 bytes length data will be written to the text file for each sample achieved. Besides, is the anyway to do it beside sd card? I’m using a external adc through spi as the internal oe was too slow.


#10

So there’s multiple things that are going to work against you here. Writing in TEXT is massively slow, because you have to convert whatever you’re writing into text, you usually end up with string conversion and all kinds of things that have a wider impact as well (the GC works overtime which means there’s less time for other stuff). You also have a file system that sits on top of that, that means there’s also more overhead.

The next logical question from what you described is for how long do you need to log the data at this rate? If you can log the data to a high speed memory then that would most likely be faster than SD card. You could buffer the samples first to memory and then push that out to SD for the later analysis once your sampling time is over. Fez Hydra seems to be geared towards something like that in my view.

This will always be a tradeoff I’m afraid. The amount of information you log will be constrained by something - either the speed you can sample things at, or the speed you can record it for later use. It seems you’ve already decided the internal ADC wasn’t ccoping with the first aspect (which I’m surprised that you think an external serially connected device is actually quicker!), now you’re hitting the second. There are strategies you can employ to help but at some point you’re going to reach a limit…