Welcome to Laser Pointer Forums - discuss green laser pointers, blue laser pointers, and all types of lasers

LPF Donation via Stripe | LPF Donation - Other Methods

Links below open in new window

ArcticMyst Security by Avery

LPM Circuit Issue - Ophir Thermopile

Trevor

0
Joined
Jul 17, 2009
Messages
4,386
Points
113
First off, this is why I write code. :p

I've got a circuit built to test the beta version of OpenLPM Mk. I that uses an Ophir thermopile, but the thermopile's analog output hovers at around -6mV. So, I can't effectively measure any lasers below that. You also generally shouldn't feed negative voltage into a microcontroller. ><

It's not a huge problem, but it would definitely be nice for me to get the zero setting right.

The basic design of the circuit is prettymuch a Kenometer USB that I rebuilt with Jerry's filter he posted here:

Got it... Thanks...

Is the MCU part number a secret... I know the FirmWare is...:D
The LaserBee I uses a PIC16F628A Micro Controler Unit..
No secrets there..

Looking at the drawing... now knowing where the power is coming in
and where the power is going out to the Thermopile Head Electronics...
I still see a problem... Your drawing shows absolutely no filtering on the
output of the DC/DC converter as I had suggested...:thinking:
They are Boost Converters and need filtering...IMO

When I originally scoped the input and output of the DC/DC converter
it was apparent that it was the Output and not the Input that was
the Problem with Ripple since the output of the DC/DC converter was
not filtered...

As I posted earlier I put a single 470mF electrolytic across the +12V and
ground output of the DC/DC converter and another 470mF electrolytic
across the -12V and ground of the DC/DC converter..
I have not yet had any more problems with my Lites....

But I can see requiring the Inductor coils when using a sensitive MCU..

Jerry

So, I've got smooth voltage coming from a +/-12V DC/DC converter into the thermopile. The output signal feeds into an Arduino.

The thermopile's got four pins: +, Gnd, -, and analog out. I know to solve the negative voltage issue I've got to add a small voltage bias to the analog signal.

Could I effectively add a very high value potentiometer (1MOhm?) with the legs on the +/- voltage and the wiper pin on the analog signal so that I can add that small voltage bias? Then again, this strikes me as a situation in which the fact that voltages in parallel don't add might come into play - and I'm also not sure of the side effects of feeding that voltage into the signal line. Might it be a better plan to change the bias on the common ground pin on the thermopile?

Since I don't have a pot on hand right now, I thought it would be a good idea to ask before I made my next digikey order.

Any push in the right direction is appreciated. :)

-Trevor
 





Joined
Sep 20, 2008
Messages
17,622
Points
113
IIRC....
That was a quote where I was trying to help Kenom
get rid of the Noise and Jitter problems with his Lites
that was ultimately ignored... :crackup:

Inside the Ophir head is a circuit board that has
2 multi-turn pots. One of them (I can't remember
which one) is used to calibrate the head to Zero.

Be careful because you could un-calibrate the head
if you pick the wrong pot..
Then it would need to be sent back to OPHIR to get
it re-calibrated...:cryyy:

Jerry
 
Last edited:

Trevor

0
Joined
Jul 17, 2009
Messages
4,386
Points
113
IIRC....
That was a quote where I was trying to help Kenom
get rid of the Noise and Jitter problems with his Lites
that was ultimately ignored... :crackup:

Well, it was really helpful information when I went to build a prototype for OpenLPM. Thanks. :)

Inside the Ophir head is a circuit board that has
2 multi-turn pots. One of them (I can't remember
which one) is used to calibrate the head to Zero.

Be careful because you could un-calibrate the head
if you pick the wrong pot..
Then it would need to be sent back to OPHIR to get
it re-calibrated...:cryyy:

Jerry

Hm. Yeah; I was going to try to avoid screwing around inside the head if I could - I feel like there's got to be a less barbaric way to do it. There isn't... well, I guess it's worth a try. I'll just have to hope I pick the right one. :eek:

-Trevor
 
Joined
Sep 20, 2008
Messages
17,622
Points
113
If your OPHIR head ( after acclimating to the ambient
air temperature of your work area) reads -6mV...
your OPHIR head needs to be Zeroed before using
it for a Design project...

There is no use in designing a measuring device if
the parts are out of spec or calibration...


Jerry
 
Last edited:

Trevor

0
Joined
Jul 17, 2009
Messages
4,386
Points
113
If your OPHIR head ( after acclimating to the ambient
air temperature of your work area) reads -6mV...
your OPHIR head needs to be Zeroed before using
it for a Design project...

There is no use in designing a measuring device if
the parts are out of spec or calibration...


Jerry

For what it's worth, I've confirmed accuracy to 2W (need to go farther, need more watts... :D) with lasers of known power - including my 5mW Lyra, using Laserglow's test results. To me it seems that the reading is simply offset and not really out of calibration, per se. If that makes sense. :thinking:

Though to be sure I'll stop by a lab when I get back to school to compare it with a Coherent LabMax. :)

After thinking about the issue, I thought it might be solved by supplying a slight voltage bias to ground. That would seemingly eliminate the issue of applying voltage to Aout while still providing an offset. Does that sound at least slightly correct?

Thanks for the tips by the way. Much appreciated. +1 if the system will let me (EDIT: Nope. :( ). :beer:

-Trevor
 
Last edited:
Joined
Aug 15, 2009
Messages
1,443
Points
48
The output of an ophir oem head is directly connected to an opamp, pushing that way doesn't work. The pcb inside has 3 potmeters, 1 calibration, 1 offset and the other I haven't tried yet. If the ophir sensor itself has an offset you can better adjust it there, I can point you to the right potmeter.
The other option is not sharing the 0V line of the sensor with the microprocessor. Adding an opposite offset to the 0V of the sensor will shift the output to where you want it.
An opamp circuit added to the ophir head would also be possible, but that does seem a little redundant considering there are already opamps in the head itself.
 

Trevor

0
Joined
Jul 17, 2009
Messages
4,386
Points
113
The pcb inside has 3 potmeters, 1 calibration, 1 offset and the other I haven't tried yet. If the ophir sensor itself has an offset you can better adjust it there, I can point you to the right potmeter.

If you know which pot to work with already, that makes the process much easier. :)

The other option is not sharing the 0V line of the sensor with the microprocessor. Adding an opposite offset to the 0V of the sensor will shift the output to where you want it.

I do like the non-invasive option much better, I admit. Would this be where a high-resistance, many-turn pot comes into play? I guess with the legs on the +/- voltage to the head and the wiper tied to the head 0V?

+1 :)

-Trevor
 
Last edited:
Joined
Aug 15, 2009
Messages
1,443
Points
48
The attached picture is what I figured out. I also traced quite some lines of the pcb, but it's a multilayer pcb so I haven't got the complete circuit yet. The offset control may be sensitive, I'm not sure, it's a while back since I recalibrated one.

The ophir head hardly requires any current, but the power supply needs to be low-impedance, using a high resistive pot would make it jump anywhere depending on the current drawn. An opamp as voltage follower would to the trick, not complicated. Placing the potmeter with it's legs on the voltage source would make the offset control sensitive to the supply voltage. And the pot would give an adjustment range of +/- 12W, more than you are looking for. Placing a resistor in series with the potmeters leg to the powersupply (on both ends) lowers the adjustment range. Adding a (zener)diode from the potmeters leg to the uC ground greatly lowers the power supply voltage sensitivity (again and both ends). Take a diode with the votlage drop you like, 0.7V would make the potmeter adjust for +/- 0.7V).

I usually assume potmeters can be set within 100th of a rotation, so a ten turn potmeters could be set within 0.1%. Letting the offset range go beyond 1V means you'll have trouble setting the pot with millivolt precision.

And my 1000th post.
 

Attachments

  • dscf4449_sct.jpg
    dscf4449_sct.jpg
    61.1 KB · Views: 2,731

Trevor

0
Joined
Jul 17, 2009
Messages
4,386
Points
113
Joined
Apr 23, 2011
Messages
212
Points
0
The micro that the laserbee uses is kinda irrelevant. His doesn't have a internal ADC....if I remember correctly... If that is the case the real secret is what ADC the laserbee uses. I assume laserbee your not willing to share.. don't blame you there. ;) Any chance you would share the bit number? I suppose I could just read the serial output and figure it out but i'm too lazy for that. I assume its higher than a 10bit... (well hopefully) but how much higher?

Anyhow, the most critical part of a computer controlled LPM is your ADC since that defines your true resolution. What ADC are you planing on using for this open source project?

Also, as far as zeroing goes... thats irrelevant, just have software do it automatically at the start of each read set and rescale your readings accordingly.
 
Last edited:

Trevor

0
Joined
Jul 17, 2009
Messages
4,386
Points
113
The micro that the laserbee uses is kinda irrelevant. His doesn't have a internal ADC....if I remember correctly... If that is the case the real secret is what ADC the laserbee uses. I assume laserbee your not willing to share.. don't blame you there. ;) Any chance you would share the bit number? I suppose I could just read the serial output and figure it out but i'm too lazy for that. I assume its higher than a 10bit... (well hopefully) but how much higher?

Anyhow, the most critical part of a computer controlled LPM is your ADC since that defines your true resolution. What ADC are you planing on using for this open source project?

To answer your irrelevant LaserBee question, I believe the LaserBee I uses a 12-bit ADC and the LaserBee II uses a 16-bit ADC. That bit of his post was irrelevant, I just quoted the whole thing.

OpenLPM just oversamples the Arduino's internal 10-bit ADC, which gives surprisingly good accuracy.

Also, as far as zeroing goes... thats irrelevant, just have software do it automatically at the start of each read set and rescale your readings accordingly.

The ADC can't read negative voltage, so below a certain threshold all readings would be lost, hence me wanting to add a small bias.

-Trevor
 
Joined
Apr 23, 2011
Messages
212
Points
0
To answer your irrelevant LaserBee question, I believe the LaserBee I uses a 12-bit ADC and the LaserBee II uses a 16-bit ADC. That bit of his post was irrelevant, I just quoted the whole thing.

OpenLPM just oversamples the Arduino's internal 10-bit ADC, which gives surprisingly good accuracy.



The ADC can't read negative voltage, so below a certain threshold all readings would be lost, hence me wanting to add a small bias.

-Trevor

A 10bit ADC would only equate to only 1024 counts... Your resolution would be rather poor at that point would it not?
 
Last edited:
Joined
Aug 15, 2009
Messages
1,443
Points
48
He didn't describe what he did very clear, but it seems he has a dc/dc converter providing a symmetric voltage floating with respect to the readout circuit. This can work, but it requires a floating power supply. The zero offset shift the floating power supply with respect to the rest

My idea was to shift the 0v line of the head with respect to the rest so that the + an - voltages can be fixed with respect to any readout. If the current draw is low enough an opamp won't be needed. See also the first circuit, R1 &R2 make the potmeter.
If the current draw of the 0V line is too high for this to work you could add an opamp (circuit2).
but a normal opamp circuit to add an offset won't be more difficult to make.
Edit: I've added an example, circuit 3, of a decent offset circuit.
 

Attachments

  • offset1.jpg
    offset1.jpg
    29.1 KB · Views: 230
  • offset2.jpg
    offset2.jpg
    35.8 KB · Views: 468
  • offset3.jpg
    offset3.jpg
    22 KB · Views: 785
Last edited:

Trevor

0
Joined
Jul 17, 2009
Messages
4,386
Points
113
A 10bit ADC would only equate to only 1024 counts... Your resolution would be rather poor at that point would it not?

The key here is oversampling.

When using the 1.1V internal voltage reference (this was before I used a hardware noise filter), I could get an accurate reading of my 2.6mW 543.5nm HeNe, confirmed with a Coherent LaserCheck. As the project progresses, there's definitely going to be more testing though.

And the beauty of Arduino is that once there's a simple (Mk. I) or more advanced (Mk. II) open-source LPM project out there, someone can modify the code to use an external ADC - 16 or 24 bit, for example. :D

He didn't describe what he did very clear, but it seems he has a dc/dc converter providing a symmetric voltage floating with respect to the readout circuit. This can work, but it requires a floating power supply. The zero offset shift the floating power supply with respect to the rest

My idea was to shift the 0v line of the head with respect to the rest so that the + an - voltages can be fixed with respect to any readout. If the current draw is low enough an opamp won't be needed. See also the first circuit, R1 &R2 make the potmeter.
If the current draw of the 0V line is too high for this to work you could add an opamp (circuit2).
But the best solution is a decent offset circuit (circuit 3), requiring 1 potmeter (R3 & R4) and 2 resistors which is still very simple.

Yeah, I guess I didn't explain very well did I. Sorry. ><

Back from the grocery store though, so it's time to fire up the iron... :D

-Trevor
 
Joined
Apr 23, 2011
Messages
212
Points
0
The key here is oversampling.

When using the 1.1V internal voltage reference (this was before I used a hardware noise filter), I could get an accurate reading of my 2.6mW 543.5nm HeNe, confirmed with a Coherent LaserCheck. As the project progresses, there's definitely going to be more testing though.

And the beauty of Arduino is that once there's a simple (Mk. I) or more advanced (Mk. II) open-source LPM project out there, someone can modify the code to use an external ADC - 16 or 24 bit, for example. :D

I'm still a student, mind explaining the basics of oversampling a ADC and how that would expand your resolution past your internal true bit count?
 
Joined
Aug 15, 2009
Messages
1,443
Points
48
I've added a 3rd circuit to my post, I think that would be the best one to use, it leaves the supply voltages unchanged.

A 16 or 24 bit will have a beautifull dynamic range, but a range switching system would be better, you won't reach 24 bit precision with optical measurements anyway. Very few sensor actually have a dynamic range of 24 bits, so it would be overkill in most situations anyway.

edit: @random person: IIRC that discussion has been done, in my opinion you can't oversample usefully past the nonlinearities of the ADC without knowing it's exact nonlinear response curve, but I'm interested in the linearity of the result anyway.
 
Last edited:




Top