Hi All,
I'm new here and would be grateful for advice please. I want to develop a system that can do the following: capture up to four ADC samples concurrently and at up to about 200 kHz sample rate. When I say concurrent, I'd ideally like absolutely synchronous sampling, but a gap of significantly less than the sample interval (sub microsecond) would be OK. I would ideally like to stream these 4 ADC streams (at 4 x 200x10^3 x 2 bytes/sample = 1.6 MBytes/s) to a host computer (Apple MacBook Pro) for further data processing.
I would ideally like these captures to be semi-continuous, i.e. once I start capturing, I want that to continue until I stop. The captured data could either: (a) be buffered locally in Tenny-<xyz> then sent to the host MacBook in periodic bursts (e.g. double-buffering), or (b) data can be streamed continuously at the average rate at which it arrives.
I realise this is a non-trivial project, but I've a lot of experience doing this kind of thing professionally, but not on a platform such as Teeny, and this is a personal project for fun, not work.
Among the many things I'm unsure about are:
I'm new here and would be grateful for advice please. I want to develop a system that can do the following: capture up to four ADC samples concurrently and at up to about 200 kHz sample rate. When I say concurrent, I'd ideally like absolutely synchronous sampling, but a gap of significantly less than the sample interval (sub microsecond) would be OK. I would ideally like to stream these 4 ADC streams (at 4 x 200x10^3 x 2 bytes/sample = 1.6 MBytes/s) to a host computer (Apple MacBook Pro) for further data processing.
I would ideally like these captures to be semi-continuous, i.e. once I start capturing, I want that to continue until I stop. The captured data could either: (a) be buffered locally in Tenny-<xyz> then sent to the host MacBook in periodic bursts (e.g. double-buffering), or (b) data can be streamed continuously at the average rate at which it arrives.
I realise this is a non-trivial project, but I've a lot of experience doing this kind of thing professionally, but not on a platform such as Teeny, and this is a personal project for fun, not work.
Among the many things I'm unsure about are:
- Is synchronous ADC over 4 channels possible?
- What's the recommended way to transfer data to my host MacBook?
- It seems that Teeny-4 (or 4.1) is the best choice, due to the high CPU speed, or is there a better alternative?
- I'd prefer to develop in vanilla C or C++, is that possible, and if so can I still link with available libraries?
- If not using C/C++, what's the run-time performance of the script-like code examples I've seen in some YouTube videos?
- Any specific recommendations for the best IDE/tool-chain to use on a new MacBook with ARM CPU?
- Did I miss anything else? I bet I did!