Can you post the exact filter you are wanting to implement? Also, if you wanted to zip and email me a representative data set, I could use that to play around with, see if any other ideas pop up. (same user name as here, at gmail dot com)
thanks,
Jonathan
Hi Jonathan-
I'm trying to capture raw 80Khz data on one channel to SD card so I can develop a proper filter. Is there any difference in speed between the following pseudo code snippets when it comes to FSRW (2.6)?
sd.pwrite(@myBuffer,packetSize*14);
and
repeat idx 0 to 13
sd.pwrite(@myBuffer[packetSize*idx],packetSize)
Nice avatar. I understand about the amount of free time. I've got 3 under the age of 5; the smallest one is 6 months. I assume the first is slightly faster but the second will be easier to code. Thought I'd ask just in case it doesn't matter.
You are correct, the 1st is technically faster, but if nothing else is going on, the write-behind code that the block driver is using should make it a non-issue (the operations will overlap), so I'd definitely use the "easier to code" version.
Yep, Lily just turned 1.5 years old yesterday, and she is the sweetest time-sink ever [8^).
Jonathan
EDIT: what about using an analog low-pass filter, and just simply drop the sampling rate?
Thanks for the prompt response. I'll certainly go with the easier to code version ; )
Re: analog low-pass filter, I'm still convinced that noise can be reduced by oversampling and I want a range of possible sample rates (10Khz all the way down to 20). I see a digital filter as the easiest path that solves both.
Best of luck with Lily. As many here can attest, they get more challenging and more rewarding as they get older. I'm not sure they get much cuter than 1.5-2 years though.
I was looking at my dive computer this morning and I thought about this project. How's it going?
My dive computer uses an IRDA link. As I remember, IrDA links look just like serial ports on the PC side depending on the manufacturer. There is nothing on the Obex right now under "IrDA" but can't be that hard?
It's still going. I'm currently trying to get 10-15 seconds of raw data from the ADC so I can analyze it on my desktop. Once I get it there I can try different filters and see what I really need to get system I want.
I'm not sure which part of the system you were suggesting the IrDA link for? The data download? That's not a bad idea as it would allow a connection between PC and device that didn't require a hole in the box. Can these links approach multi-mega bit/s transfer rate? Downloading 16Gbytes of data at 1Mbyte/second is something like 4 hours. We need to do this in minutes.
I think we're headed toward USB of some kind. I just need to figure out how to do it and then how to make a bulkhead connection that doesn't break the bank. These units need to be weather tight (driving rain and snow) but not submersible. I may have mislead folks in earlier posts.
Using two props, and two USB cables, could you accomplish everything your trying to do here?
A single program could be written so that depending on which prop has certain pins tied high, the props could run specific code. Then one could make a program in spin, with a theoretical 16 cogs available, but the props code would need to be downloaded from the usb (or from a 3rd main controller prop)
Dual ftdi prop. If you look at the circuit, you can see two separate data return channels, along with a single clock source, making clock sync entirely possible. http://forums.parallax.com/showthread.php?t=124520
The IrDA would solve the case penetration issue. Online specs for IrDA claim upper end of 4Mbit so assuming RS232 protocol of 11 bits per byte and CRC overhead of 1.2 you could probably achieve data rates of ~303030 bytes per second. A Meg every 3 seconds is not too bad.
The optical medium does have merit though. You might even be able to use some sort of Ethernet laser connection through the windows.
Comments
Hi Jonathan-
I'm trying to capture raw 80Khz data on one channel to SD card so I can develop a proper filter. Is there any difference in speed between the following pseudo code snippets when it comes to FSRW (2.6)?
and
Nice avatar. I understand about the amount of free time. I've got 3 under the age of 5; the smallest one is 6 months. I assume the first is slightly faster but the second will be easier to code. Thought I'd ask just in case it doesn't matter.
Yep, Lily just turned 1.5 years old yesterday, and she is the sweetest time-sink ever [8^).
Jonathan
EDIT: what about using an analog low-pass filter, and just simply drop the sampling rate?
Thanks for the prompt response. I'll certainly go with the easier to code version ; )
Re: analog low-pass filter, I'm still convinced that noise can be reduced by oversampling and I want a range of possible sample rates (10Khz all the way down to 20). I see a digital filter as the easiest path that solves both.
Best of luck with Lily. As many here can attest, they get more challenging and more rewarding as they get older. I'm not sure they get much cuter than 1.5-2 years though.
My dive computer uses an IRDA link. As I remember, IrDA links look just like serial ports on the PC side depending on the manufacturer. There is nothing on the Obex right now under "IrDA" but can't be that hard?
It's still going. I'm currently trying to get 10-15 seconds of raw data from the ADC so I can analyze it on my desktop. Once I get it there I can try different filters and see what I really need to get system I want.
I'm not sure which part of the system you were suggesting the IrDA link for? The data download? That's not a bad idea as it would allow a connection between PC and device that didn't require a hole in the box. Can these links approach multi-mega bit/s transfer rate? Downloading 16Gbytes of data at 1Mbyte/second is something like 4 hours. We need to do this in minutes.
I think we're headed toward USB of some kind. I just need to figure out how to do it and then how to make a bulkhead connection that doesn't break the bank. These units need to be weather tight (driving rain and snow) but not submersible. I may have mislead folks in earlier posts.
p
A single program could be written so that depending on which prop has certain pins tied high, the props could run specific code. Then one could make a program in spin, with a theoretical 16 cogs available, but the props code would need to be downloaded from the usb (or from a 3rd main controller prop)
Dual ftdi prop. If you look at the circuit, you can see two separate data return channels, along with a single clock source, making clock sync entirely possible.
http://forums.parallax.com/showthread.php?t=124520
This idea was derived from the discovery that any number of props could be programmed in parallel.
http://forums.parallax.com/showthread.php?t=124343
This circuit is risky as it doesn't follow conventional design rules. (thus why my website is www.thereisnoelectron.com, LOL)
The optical medium does have merit though. You might even be able to use some sort of Ethernet laser connection through the windows.