Implementing Digital Lock-In Amplifiers Using the Arduino

Hi all, I'm new in Arduino board and currently just explore the implementation based on Arduino Uno board.
Actually, I was assigned to design the lock-in amplifier circuit which will be applied in sensor application. In addition, I found some application has been done using dsPIC (http://ww1.microchip.com/downloads/en/AppNotes/01115A.pdf). So, could anyone guide me how to implement this kind of amplifier circuit using Arduino.

Thanks in advanced..

An UNO can't do what is described in that data sheet. It does not have any DSP instructions.

Pete

el_supremo:
An UNO can't do what is described in that data sheet. It does not have any DSP instructions.

Pete

Really thanks Pete.. In what way it could be done using Arduino without DSP instruction?

1 Like

In what way it could be done using Arduino without DSP instruction?

You don't necessarily need the DSP instructions, but you still have to store the data and do all the relevant math. The Arduino does not have enough memory or enough processing speed and power to accomplish the task described in the dsPIC application note.

jremington:

In what way it could be done using Arduino without DSP instruction?

You don't necessarily need the DSP instructions, but you still have to store the data and do all the relevant math. The Arduino does not have enough memory or enough processing speed and power to accomplish the task described in the dsPIC application note.

Really thanks for your advice. So, in my opinion, its possible to implement the lock-in amplifier function using Arduino. Anyone who have experience please share here. I'm really need your help..

So, in my opinion, its possible to implement the lock-in amplifier function using Arduino

Lots of things are possible, like the AVR microcontroller that boots Linux under software Arm emulation.
Whether or not the performance of the system meets your requirements, only you can answer.

Without knowing about the desired resolution (both voltage and time), sample
count or clock source there's little to go on.

At its most basic lock-in is just summing a repeating waveform over the top
of itself repeatedly to average out the noise, which is perfectly doable on any
device with an ADC and some RAM - the devil is in the details.

Not having DSP instructions simply means it won't run as fast, there's nothing
magic about DSPs other than their speed of executing digital signal algorithms.

Lock-in detectors often run at low frequencies BTW, so its not necessarily very
compute intensive (though the lack of floating point native support is worrying)

If you did want to do some DSP code the obvious choice is the Due with its greater
ALU throughput and memory size and faster ADC/DAC. For a good lock-in detector
I think you'd be looking at a much higher resolution ADC in the first place, good
low noise amplifier and flexible clock source...

MarkT:
Without knowing about the desired resolution (both voltage and time), sample
count or clock source there's little to go on.

At its most basic lock-in is just summing a repeating waveform over the top
of itself repeatedly to average out the noise, which is perfectly doable on any
device with an ADC and some RAM - the devil is in the details.

Not having DSP instructions simply means it won't run as fast, there's nothing
magic about DSPs other than their speed of executing digital signal algorithms.

Lock-in detectors often run at low frequencies BTW, so its not necessarily very
compute intensive (though the lack of floating point native support is worrying)

If you did want to do some DSP code the obvious choice is the Due with its greater
ALU throughput and memory size and faster ADC/DAC. For a good lock-in detector
I think you'd be looking at a much higher resolution ADC in the first place, good
low noise amplifier and flexible clock source...

Yeah, I'm really agree with your argument and general ideas about LIA, Mr markT. As far as I know, the quite similar application has been done using other microcontroller such as PIC (even dsPIC), 8051 and AVR.. But, not ATmega or using Arduino platform. That's why I'm interested to explore the possibility of Arduino.. I'll looking using 'Due' due to its ALU, memory size, ADC capabilities and off course the 84MHZ speed performance..

look at this