Affordable USB DAQ for Geomagnetic Signals

I am using an AMP01 instrumentation amp to acquire signals from the Earth's magnetic field. After filtering, the 2Vpp output is a complex waveform within the 1-100Hz ELF band.

My requirement is for a low cost USB DAQ module so the signal can be analyzed in software. I would like to process it "instantaneously" as received, eg. not from storage.

The sales reps keep trying to sell me $700 units, when I suspect all I need is something like these.

formatting link

formatting link

My application seems pretty straightforward and only one channel is needed. Given the low frequency, I assume the sample rate does not have to be fast.

Unfortunately, inquiries made to these companies regarding the above have not resulted in any defintive reply.

Any assistance would be greatly appreciated.

Barry Latham.

Reply to
blatham
Loading thread data ...

I can recommend the Labjack stuff. They've been working without any problems and you can access them from Windows and Linux without too much hassle.

--
Mikko OH2HVJ
Reply to
Mikko Syrjalahti

Seconded. Once you figure out their method for batching up commands, you can do a lot with them.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs 
Principal Consultant 
ElectroOptical Innovations LLC 
Optics, Electro-optics, Photonics, Analog Electronics 

160 North State Road #203 
Briarcliff Manor NY 10510 

hobbs at electrooptical dot net 
http://electrooptical.net
Reply to
Phil Hobbs

I've just (a few weeks) got a Labjack. (U6) I've been playing around with the 'free' DAQfactory software. But his looks to be somewhat limited unless you want to shell out for the complete version (something like $500- $1k). So I'm wondering what people use to talk with it? I'm mostly write little programs in basic (Qbasic and power basic). But I did do some C programming in the distant past. And I could always pick that up again. (Are there any cheap versions of C that I can run on a windows machine?)

I should take this queston to the labjack forums, I guess.

George H.

Reply to
George Herold

mingw for that authentic command line experience. Or visual studio express I suppose.

Probably.

I seem to recall there are some code examples in an enormous number of languages/systems. So you could look at python perhaps, very nice for scientific data visualisation / analysis.

--

John Devereux
Reply to
John Devereux

Tweaking an old soundcard so that it is DC coupled would be my first choice for a quick test of capabilities.

Depending on what youu want to do Visual C express or Visual Basic might suit. You don't get much help with the free version.

formatting link

If it is for educational purposes there is a better choice.

Might even be a case where JLs PowerBasic is most suitable.

--
Regards, 
Martin Brown
Reply to
Martin Brown

I always write some small console program to talk with them. Once you have the library figured out, it's pretty fast to take the previous program and hack it up to do a new job.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs 
Principal Consultant 
ElectroOptical Innovations LLC 
Optics, Electro-optics, Photonics, Analog Electronics 

160 North State Road #203 
Briarcliff Manor NY 10510 

hobbs at electrooptical dot net 
http://electrooptical.net
Reply to
Phil Hobbs

All PC's have a Soundcard, [don't they?] therefore chop the signal coming in from the DRIVE output, thenuse the two channels of input to get 24 bit ADC.

Plus, you can extend the low end down further than 1 Hz to 'DC', if you wanted to.

I know, not as convenient as USB port, but CHEAP! and 24 bits is a lot compared to those USB thingies.

Reply to
RobertMacy

Hmm lots of Python stuff on the labjack forums. I like the idea of a high level language... I just want to get something working.. not perfect. And the price is right! I'll try a plunge into python. Thanks John, George H.

Reply to
George Herold

There are free versions of "C" that are extremely high quality. That is, if you are only talking about a C compiler and not an IDE. I believe Microsoft has a free version of the IDE and I also believe Eclipse works with C *and* C++.

You might be better off seeing if there is a module for Python though, its a bit more like BASIC in some important ways. Specifically, harder to shoot yourself in the foot when you don't know what you're doing. In C/C++ you have to worry about invalid pointers, undefined behavior, uninitialized values, etc...

If you know what you're doing though, C and C++ can both be much more powerful.

Wouldn't be a bad place to start ;-)

HTH, DAniel.

Reply to
Daniel Pitts

There is a module (CDT, C Development Tookit) in the Eclipse repository. When properly set up, it is of great help, as the editor can find many of coding blunders at the time of writing.

There is a bundled version of Eclipse for C and C++, which includes the CDT.

--

Tauno Voipio
Reply to
Tauno Voipio

Good to know if I ever start working on a C/C++ project. Maybe I'll replace Arduino IDE with Eclipse.

I have a different favorite IDE (from jetbrains). They don't yet have full C or C++ support though.

Reply to
Daniel Pitts

If you are going to roll your own code, you should really have a linux box. There is a free crippled version of Visual Studio 2010, but MS code is kind of unique to MS itself. You really need the MS books to know all the nuances. Half the time, the solution already exists on linux, or you get someone's code and hack it a bit.

There is a gcc for windows, but it all gets ugly. It is just a time sink to make windows do what it doesn't want to do.

Reply to
miso

For console-mode data acq code, there really isn't much difference. GCC doesn't have conio.h, but that's about it. You can fake the conio functions (of which the most useful are kbhit() and _getch()) using select() and a couple of other things that I forget.

Network stuff, multithreading, and GUI code gets fuggly under Windows, for sure.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs 
Principal Consultant 
ElectroOptical Innovations LLC 
Optics, Electro-optics, Photonics, Analog Electronics 

160 North State Road #203 
Briarcliff Manor NY 10510 

hobbs at electrooptical dot net 
http://electrooptical.net
Reply to
Phil Hobbs

No, I figured I'd steal something already written and then make mods. Python looks like it will be just my 'speed'. A modern combo of basic and C. Hey, I downloaded it and printed hello world right away... None of that compiling and linking.

I'll be mostly measuring slow temperature changes... Maybe some other slowly varying signals. Mostly data logging, a real time plot might be nice.

Sure, but for me linux would just be a time sink.

Geroge H.

Reply to
George Herold

No, I figured I'd steal something already written and then make mods. Python looks like it will be just my 'speed'. A modern combo of basic and C. Hey, I downloaded it and printed hello world right away... None of that compiling and linking.

I'll be mostly measuring slow temperature changes... Maybe some other slowly varying signals. Mostly data logging, a real time plot might be nice.

Sure, but for me linux would just be a time sink.

Geroge H.

Reply to
George Herold

None of that, just slow data logging, (at the moment). I might have to do a slow control loop, a real time graph would be nice.

George H.

Reply to
George Herold

You are the second respondent who suggested a soundcard.

But can you please elaborate.

Here is a smiple FET chopper. Why feed its output into two channels of the input?

formatting link

How is the input signal then reconstructed?

By extending the low end further I assume you mean bypassing the cap. Are you suggesting this as a simpler alternative to the above?

Thanks,

BarryLlatham

Reply to
blatham

for what it's worth, I feel like an 'expert' at octave, yet was out run by someone using python. He did things with python that woud have been very cumbersome for me to do. I had himbeat [well almost] in math mnipulations, but he had me beat in input file manipulations and output displays. Input files he quickly wrote scripts that would input a file and strip the info right down to what was needed, even conditional searches! The last straw was he produced real time, self adjusting streaming window panels of plots coming in from a soundcard. So, stick with python, join their group and learn away!

Reply to
RobertMacy

Not sure you want to throw away your input cap. that pesky noise source

1/f can really sneak up on you.

A lot simpler!!! How simple? If you don't need a lot of accuracy [you can work out the effect to see if you can do this using simulation tools] throw away the 'negative' half. what I mean is simply short your signal to ground 50% of the time. This works especially well if your input has a bias, say always positive. Then a simple switch shorting to GND will do it.

Next decide a frequency to chop at. If you AC couple in and only are interested in the 1 to 100 Hz range; use a multiple of the AC mains. That way, AC mains will appear as a very slowly changing DC signal and will be blocked by your input cap.

No, you don't have to use both channels, one will work, but you have a second for free! Set up the drive output of one of the output channels [again you have two, second is free] to provide a signal to chop with. This signal is based upon all the timing inside your soundcard, so when you receive the chopped signal you are SYNCHRONOUS! That means you can find out what is there with sides going down into the 110+dB range! try THAT with analog!

When I say simple, I mean all you need is a chopper, built-in soundcard, software, and you're done! that has to be cheaper, and will give you better performance than you can possibly get with any USB add-on device.

Processing? you can may be use available software apps from people, don't know. However, if you use free ASIO interface from Steinberg to run your card, you can write a bit of C/C++ code to absolutely control what's going on. Usually if you set up at 44100S/s you get eight channels of input, count them eight! or if you opt for higher speed [which has advantages] you can do 192000S/s and still have two channels.

Here is the technique: Drive continuously Receive accumulating 'chunks', put chunks together until you have 1 second's worth. Do FFT using the fftw algorith [it is FAST!], after sorting out the offset to operate at the chopping frequency, run the inverse ifft, grab the real part, because you KNOW the original signal is real, and you have successfully, accurately recreated your input waveform. You want lower bandwidth, accumulate longer chunks.

You can even insert a 'calibration' sequence to remove a few unknowns, probably get better than 100-200 ppm accuracies.

Almost NO hardware, a bit of controlling software, what's simpler than that?

PS: Using the approach of FFT, manipulate the spectrum by removing periodic frequencies, iFFT to get the signal back minus the glare; I've done comb filters. Takes out all of a signal tone and its harmonics, leaving only the 'noise' floor to examine. I was looking for some REALLY small signals.

Reply to
RobertMacy

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.