user85138: I am working on a simple data acquisition system based on an Arduino Uno. Each run would ideally collect up to 10k data points (all doubles). Obviously, the Arduino doesn't have the capacity to hold all that at once. However, as one would expect, printing out the data as its being acquired significantly slows the process down (by about a factor of 7). I have looked around to find if there's a standard way to deal with this issue in the world of Arduinos, but have come up short. I come from a background where memory is never an issue, so I'm not as well versed in this side of things.
Obviously I don't expect perfection, but any insight or sources would be helpful.

user4143: This is all about choosing the right tool for the job.
At the moment you're trying to fit 50 clowns into a mini. While there are ways of doing it (by extending the "mini" outwards with extra "room") it's not what you'd normally do.
Instead you'd hire a coach.
If you have a scenario whereby you need to store more data than an Uno can store then you would typically use a different board with a more powerful chip.
There's plenty out there, many that are cheaper than the Uno...
If you desperately do want to use the Uno then:

Reduce your data size: consider using smaller variables, such as 16 bit integers and fixed point arithmetic instead of floating point values.
Improve your data transmission: send binary data instead of ASCII data, and increase your baud rate to the highest that can be reliably achieved
Consider adding external storage, such as an SPI SRAM chip or an SD card.


85138: <p>I am working on a simple data acquisition system based on an Arduino Uno. Each run would ideally collect up to 10k data points (all doubles). Obviously, the Arduino doesn't have the capacity to hold all that at once. However, as one would expect, printing out the data as its being acquired significantly slows the process down (by about a factor of 7). I have looked around to find if there's a standard way to deal with this issue in the world of Arduinos, but have come up short. I come from a background where memory is never an issue, so I'm not as well versed in this side of things.</p>
<p>Obviously I don't expect perfection, but any insight or sources would be helpful.</p>
 4143: <p>This is all about choosing the right tool for the job.</p>
<p>At the moment you're trying to fit 50 clowns into a mini. While there are ways of doing it (by extending the &quot;mini&quot; outwards with extra &quot;room&quot;) it's not what you'd normally do.</p>
<p>Instead you'd hire a coach.</p>
<p>If you have a scenario whereby you need to store more data than an Uno can store then you would typically <em>use a different board with a more powerful chip</em>.</p>
<p>There's plenty out there, many that are cheaper than the Uno...</p>
<p>If you desperately do want to use the Uno then:</p>
<ul>
<li>Reduce your data size: consider using smaller variables, such as 16 bit integers and fixed point arithmetic instead of floating point values.</li>
<li>Improve your data transmission: send binary data instead of ASCII data, and increase your baud rate to the highest that can be reliably achieved</li>
<li>Consider adding external storage, such as an SPI SRAM chip or an SD card.</li>
</ul>
