STK-500 based microgram scales

Go To Last Post
85 posts / 0 new

Pages

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

OK, reporting progress.

- Read up on PID generals, have needle-stabilization algo more or less prepared.
- HW order prepared for shipment, most stuff is 3x. :)
- Learned Forth basics and fully decoded the source code from the PDF. Rewriting in C is going to be trivial.
- In the process learned about DDR, PORTx/PINx, serial com, LCD setup & use, PWM setup for hi-res
- Now learning how op amps work in case I need them

Here's a redrawn circuit of the newer design. I'm not really getting what is hooked where:

Personally, I would hook up the galvo/resistor on the PWM pin, IR-LED on next pin, IR-detector (with optional op-amp) on next pin. That way, I have control of all three parts.

In his design, I don't see what should be hooked to the board. There's Vmeasure for sensing, Vbias (probably) feeding the whole circuit (that looks completely wrong to me). Why have everything on one circuit?

1) What do you think?
2) All op amps of this kind have 5 pins: +, -, Vout and V+/V- powering the positive/negative output amplification. In his design, he hooks photo detector current to the "-" input, puts Vbias on the "+". I guess he also hooks up the +5V supply to the V+. No V- (GND connected there?), because the signal is all positive. Correct? I suspect not. :) I really don't get it yet. What's the purpose of Vbias.

Thanks, David

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The idea is: if the slot detector is half covered with the pennon that is attached to the needle, Vbias needs to be set such that the needle is in the center position. See bias as null-compensation, or offset.

The National guy did not use a microcontroller, and you will. I think you can skip the OpAmp.

But you need to do some experiments first:
Connect the IR-diode with a resistor in series to 5V. The resistor can be roughly 680 Ohm or so. That will let a current flow through the diode of appr. 5mA.
Connect the collector of the IR transistor to 5V, the emittor with 10kOhm to ground. Make a pennon (metal, aluminium foil f.i. or black plastic) and move that in and out the slot. Hookup your multimeter to the 10k resistor and measure the voltagedrop. From that you can calculate the current.
With the pennon full in, there should be very little voltage, with the pennon out a voltage of 2 to 4V. You may need to increase or decrease the current through the diode, but read the datasheet first on what the maximum is. You may also have to fiddle with the value of the 10k. And you need to get a good feeling on how sensitive or unsensitive the IR transistor is for ambient light. Test that during the day and during the night (with lights on)
You want a good sensitivity of the detector in the middle: pennon half in.

The galvanometer: look up how much current it needs, and calculate the series resistor from that.

That's it for now. Bedtime for me.
Have fun :)

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The National guy did use a micro-controller, a Basic Stamp in fact. No other way to drive the lcd. Lower right hand corner next to the DB-9.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You are so right; how did I mis that ? But will it be just a readout of Vmeasure or will it be part of the loop ? The challenge was to measure an eyelash with National's opamps.

My estimates for the experiment turned out to be quite close: 680R and 10k work fine for the slot detector I have.

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Excellent. Thing are coming together... :) Thanks guys!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi!

I recently learned that to make the measurements somewhat more accurate, I could use a voltage divider to get < 5V on the AREF, in which case the ADC on analog inputs would have a higher resolution (1024 parts on e.g. 3.3V).

Depending on the resistance (voltage drop) of the meter (or the serially connected resistor, might be better), it could be significantly less than full 5V.

But when decoding the Forth source, I realized I already know how much power is feeding the meter - it's the PWM duty ratio.

Do you think I can measure from that like the original project? Or would using an analog input to measure some part of the circuit separately (as suggested by the NatSemi guy) be better (in which case I have a value from PWM + value from galvo, and they need not necessarily agree!).

David

PS: complete HW list ordered. :) In the end, I settled for the cheapest normal-size assembled board: Seeeduino. After re-counting pins, it has enough (some will remain unused). Plus, it'll be easier to port to one of those cheap mini/nano boards weighing 1g, because their layout & pins match exactly.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

David,

The Forth-guys use a successive approximation algorythm (you may have to look that up on Wiki f.i.), and use the slotted detector as "too high/too low" indicator. So a binary.

The National guy uses the slotted detector in an analog way: pennon position determines amount of IR-light, light to current, then current to voltage, add bias, and use that to drive the galvanometer. From what I learned so far the Basic stamp is used for readout only, though we cannot be sure of that.

The question is now: what approach do YOU want to take ?
Copy one of these two approaches ? Combine them ? Or have a good time fiddling with available data and sorting out a new method, HW-wise and SW-wise .... ?

PS The decision for which reference to use for the ADC: think about what the Forth guys did. What kind of "ADC" are they using .... mow many bits ... ?

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just to the right of the video it shows the main parts used for the scale. No other docs were found, such as schematic, software, etc.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm commited to "doing it my way". :) Different HW, different approach. Whatever will work the best during testing, I'll use that.

Based on what I've learned and can comprehend, this is my intention:

1) I'll drive the galvo with PWM, nothing else in that circuit (with a pot for fine tuning galvo range)

2) I'll use IR-LED with phototransistor and a pennon to get analog reading. Definitely. Let's say at 50% of the LED-OFF/LED-ON current range, the pennon is exactly in the middle of them. That'll be the fixed (zero) position for the scale and I can tell (by a rise/drop in the photo current) whether I need to push or pull the galvo.

3) Scale will calibrate itself by:
- reading (A) PWM % required to get "zero" with no load
- reading (B) PWM % required to get zero with 100mg load
- calculate a linear function approximating these two points

After boot, the scale balances itself to zero, acquiring value A (LCD says "starting"). It keeps balancing (LCD says "calibrate"), until user places 100mg reference load and presses "CALIB" button. That will set value B. When the scale has value A & B, it will start displaying the weight on LCD.

This will be optimized by storing A & B in EEPROM (AE, BE), so as not to need calibration every time. After boot, A is calculated and if AE & BE are available, it is offset by the same amount A is offset to AE). Not very precise, but hey, what do you want w/o calibration. :)

"TARE" button will save current weight to "T" and subtract it from the live weight measurement (until user presses TARE with no load). By default T=0.

4) The actual weight measurement: PWM is giving 0-5V in at least 1024 increments. Optical feedback is used to change the duty cycle +/- to get to the "zero" value, which I know means "pennon is in middle" (and for now is hard-coded). A is PWM% to get empty needle to zero position, B is PWM% to get 100mg to zero position. Weight (mg) = (PWM% - A) * (100 / (B - A)) (linear interpolation).

PS: Rewritten and in places better formatted Forth source easier to understand:
http://pastebin.com/ZEMn3DWX

Their PWM drive is based on bit flipping the 10-bit PWM duty cycle register bits to HIGH. Goes from MSB, when it overshoots, sets bit LOW and moves to the next one. This makes the needle as high as possible, but not so high as to leave the detector slot. Apparently, it too works fine (has clear boundaries too).

So there's no ADC in use at all. They go by PWM% and the slot, which is the same I'm going to do. Just in a slightly different way.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for the update. Have fun!

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi, I have a question about op-amps. What's the deal with V+/V-? Does every amplifying configuration (with or without negative feedback) require both supplies? AFAIK, there's no V- available on AVR chips or Arduino-based boards. And I understand it's not a trivial task to "get" one. Everybody suggests the "two batteries" solution, but that's not possible when the supply is USB, wall-wart, etc. How do you make it work?

If I want to use an op-amp as a non-inverting amplifier, do I still have to supply both V+/V- on the two supply pins?

David

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

About the photo detector hook up - can the photo transistor have Vcc/GND connected over the collector-emitter?

In that case, I thought, I wouldn't have to amplify the (photo) current using an op-amp. The transistor itself would "amplify". Small (photo) current on the base regulates a larger current across C-E. My only issue with this solution is how would I hook it up to analog-in.

Would something like this (but amplifying, not switching) be OK? (Vcc = 5V, Vout => analog-in)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I used the circuit as in figure 9 B. No need for an OpAmp. If RL=10k, add a 100nF capacitor over RL: it creates a low pass filter with Tau=1ms. Connect Vout to an analog input of the AVR.

There are 5V rail-to-rail OpAmps available, but I don't have a typenumber for you. Where do you plan to put an OpAmp ? What are the voltages at the inputs (what range are they in) ?

The OpAmp comes from the analog world. A dual supply is quite common there. Yes, I think we have a problem if we need to make a negative supply voltage.
Problem is: a microgram balance needs carefull design: a small offset, a bit of noise, a varying supply voltage are killers of accuracy.

Your project is fun and challenging, but there are a few more bears on the road ahead. And beers, but that's another story.

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Example of search attached

You can also post your OpAmp-question (which one to use for .... and able to ....) in the General Electronics forum.

Attachment(s): 

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The opamp question was just out of curiosity. I'm reading about them a lot to learn something new and just in case.

I'll use just a transistor in the balance.

Your suggestion regarding the cap is to make an RC filter, right? I may have to add more caps to filter as much noise as possible. Like this guy:

I'm leaving for abroad (3 weeks) on business, but I may work on it at the hotel. Evenings are usually pretty boring there. I'll be online and keep researching.

I was thinking the level detector is going to be crucial (even more than stable supply). Consider how little the needle bends when you put an eyelash on it! The detector has to be able to recognize it. I need to "multiply" the tiny movement somehow. E.g. like placing the pennon at the farther end, not by the coil. Angular distance is longer there. Or come up with a different detector. Perhaps something based on magnetic fields.

Check the NatSemi version, his photo detector is just below the needle's center of rotation, where it's fixed. If he's measuring the tiny distance the circular plate turns, it must less sensitive than with a pennon at the other end of the needle, being lowered (dipped) into the detector...

What do you think?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Two, 9-Volt batteries in series is not needed to drive the 7805. The "extra" voltage is just wasted as heat in the 5 V regulator.

You can put the two, 9-V batteries in parallel to give a higher current capability, and to have the supply last longer. 9-V batteries do not contain much energy in total.

JC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I know, it only was attached as an illustration to my comment about maybe needing some caps to do filtering of imperfect DC.

Last Edited: Sun. Sep 11, 2011 - 07:13 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

But here's an idea. I'm still trying to come up with a better "level" detector. Photo detector is not very precise, it probably doesn't register a minute movement of the needle when you put an eyelash on it.

I was thinking of using something based on electromagnetism. Such things could be tuned to be very sensitive, right? For example, look at this (or something similar):
http://www.watterott.com/de/Magn...
( http://www.watterott.com/de/Trip... )

I don't know if this is as sensitive as I would require, but you might know about other sensors or elecro. effects that could be used to detect proximity. Say - max range of <1cm would be enough, but when <1mm close, it would tell you with extreme precision how many micrometers the needle is from the detector.

Such a detector could be placed 1mm above the needle in "zero" (horizontal) position. The rest is the same. But I would have much more precise way of being able to say "the needle is exactly horizontal now".

You see how much it would increase precision? I could make the needle like 30cm long, in which case it would drop much lower when you place a tiny weight at the end (as opposed to a needle 5cm log). Fulcrum/lever principle. But I don't particularly want to modify the needle/coil itself. I could make it worse than it was. :)

Thanks for your opinions.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I was thinking the level detector is going to be crucial (even more than stable supply).
Interesting: I have more worries on the stability of Vcc than the slot detector. Even better: I was very pleased with how sensitive the slot detector worked.
Other things to think about are: temperature variances, the galvano needs to be current driven instead of voltage driven, the few mV's drop and noise in the groundtracks from Arduino to proto shield etc.

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I could make the needle like 30cm long, in which case

No, probably not a good idea.
As you make the needle on the meter longer you also add significantly to its mass. Although the length of the leverage arm is important, and increases as you make the arm longer, the % mass of the eyelash to the total system's mass, (lever arm + eyelash), becomes smaller.

Although a high resolution feedback system will compensate for the mass of the weighting system, it is still limited.

It is difficult to weigh very light objects, (e.g. eyelash), with a massive scale.

JC

Edit: Typo.

Last Edited: Mon. Sep 12, 2011 - 08:23 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I envision a very small piece of very thin aluminum foil wrapped over the needle, making it like a flag, (only horizontally oriented).

As the needle moves across the LED/Photodiode gap the amount of light varies.

Using the photo interrupter in a linear mode like this would be expected to give very fine positioning resolution.

I think you should test such a system on the bench top before moving to alternatives.

JC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm just thinking about it from different perspectives while I wait for the HW. :)

DocJC wrote:
I think you should test such a system on the bench top before moving to alternatives.

That's sensible. I'll probably go with the original designs mixed together. These are just ideas.

DocJC wrote:
As you make the needle on the matter longer you also add significantly to its mass.

True, I was thinking of ideally replacing the needle with something much lighter and somewhat longer. Not sure I'll be able to find such a material. The right balance of length/weight would be crucial.

Plons wrote:
Other things to think about are: temperature variances, the galvano needs to be current driven instead of voltage driven, the few mV's drop and noise in the groundtracks from Arduino to proto shield etc.

Do you think the older article's current mirror idea would help accuracy? E.i. instead of driving the galvo directly with a series pot (limiting the current), put the pot on one side of a mirror and the galvo on the other side. I'm still not sure about the full benefits of a current mirror, but I understand it supplies constant current more-or-less independently of the load (on the mirroring side). If not reducing the noise/groundloops/etc, it might help with better linearity. What do you think?

I'm looking at single source rail-to-rail op amp circuits, but that's probably not necessary. The photo interrupter should be sensitive enough. I ordered 3 types, with different resolution. Two of them in "slot" design, one very short "distance":
http://www.ges.cz/en/tcst-2103-G...
http://www.ges.cz/en/hint-5200-G...
https://www.ges.cz/en/cny-70-GES...

The last one has sensing distance of 0.3mm, that could be really accurate. Sensing down from above the needle would also eliminate the pennon requirement.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think you made a good choice in the photo interrupters. Because you'll have to some experiments to find out what is a promising approach.

Temperature is a major variable in high precision designs. Temperature influences are found on almost every component in the loop. So each step needs an evaluation of that effect.

Let's take the galvanometer: the coil is made of thin copper wire: temp coëfficient is 0.004 (appr.) So every 2.5 degr C change results in 1% change of the resistance. The force the coil "produces" is proportional to the current through the coil. And with the temp coëfficient in mind we can conclude that a voltage driven galvano is a do-not.
How to compensate for this: use a voltage-to-current converter between the PWM and coil. I am not sure if a current-mirror is the right solution. We'll have to give that some more thought.

The dutycycle of the PWM signal has a high accuracy: the AVR is running from a crystal and digital timers don't drift :) But the AMPLITUDE is a different story: temperature influences the output impedance of the OCnx-pin (=PWM-pin), Vcc will vary, ground @ the galvano-coil is not the same as ground @ the AVR etc.

Assessment of each component in the loop must be done. And after that the complete chain as a whole.

To keep the amplitude of the PWM signal stable over temperature, this may be a good approach: see attached schematic

( I am now looking at a current reference like TL431 and LM234 to see if that catches two flies in one hit )

Attachment(s): 

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I haven't analized this in detail but the general idea of converting PWM percentage to average current is as attached

edit: typo

Attachment(s): 

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

Last Edited: Wed. Sep 14, 2011 - 10:23 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You're the man! :) Thanks for helping so much. This is awesome. I'd never be able to design something like this.

Some questions:

1) I get the "5V reference with min. temp. coeff" part with LM336 (I found the data sheet). Even though I don't know why LM336 works like that in this setup (I know Zener diode function, but this has 3 terminals and is "configurable"), I trust the docs. But can you explain what R1, R3 and C1 are for? I suspect R1 is to limit the current or create a voltage drop, but that's all.

2) The second circuit I don't understand at all. Could you describe how it works?

Sorry for the dumb questions, but it really helps me in understanding & remembering how current behaves in circuits. I used to solve differential equations for R/C/L loops and compute R/U/I values anywhere in the cicruit (at school), but when I started this project I could hardly remember Ohm's law! Unbelievable.

David

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

According to the datasheet I use (ST = SGS Thomson ), the LM336 is a 2.5V reference. Yes, it is like a zener but adjustable.
R1 limits the current through the "zener", D2, R2 and D3 make it trimmable, but with very low temp drift.
Result: PWM from AVR now generates an AVERAGE voltage that is linear to the dutycycle (PWM percentage) and independent of Vcc or change in output impedance of the AVR PWM output pin.
R3 depends on the instrument, and C1 is to be defined: it averages the voltage across the galvanometer.
But as said earlier: we need to compensate for resistance change (due to temp variations) of the coil in the galvanometer.

The lower circuit uses a constant current chippie: the LM234 f.i. It's "zener for current" instead of voltage. In this circuit, the average current is proportional to the PWM dutycycle, and that's what we are looking for. The circuit is not finished yet. R5 and R6 are spoiling the party a bit. Need some thinking/time to find a better solution to adjust the current. And the circuit around the LM234 needs some more rework.

Tip: www.datasheet.com is a good source for datasheets.

Edit: that second circuit .... the TL341 should be LM234. I will correct that tomorrow in the schematic [ done ]

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

OK, HW is here and I've been hacking on it the whole weekend. :)

Already, I have some results that I'm gonna present here. I've tried two configurations of the galvo connection. One with 200R (10mA) in a series and one with 2R0 (1mA).

For now, it's not mounted on anything and there's no photo-interrupter feedback. I use the serial connection to Arduino to set PWM duty cycle to any value I want and then read the results off the galvo.

I don't have any calibration weights yet, so I use 0.4mm stripped copper wire as a reference. Like this:
PI * (d/2)^2 * 0.00894 * length [units = mm, density = 8.94g/cm^3]
With that I made 3 weights:
3mm = 3.368592mg
10mm = 11.22864mg
20mm = 22.457280mg

The equation checks out, so I was surprised that such a tiny 3mm piece of thin wire would weigh as much as 3mg! But it looks like it's correct, wire is plain Cu and math looks OK to me.

I used super-precise measurements of the wire length and surprisingly enough, the measured values look perfectly linear on the graph. The only issue I have is with 0 (no weight). Check out the calibration graphs:

As you can see, measuring is perfectly linear with my weights, but in both configurations, the "zero" point (empty needle powered so it reads 0) is out. Not by much, but it's there and I don't have small enough weights so as to be able to see how it behaves down there. Perhaps you'll think of something, why it does this.

And finally, some stats. Very precise, but doesn't have much range in the sub-mg area (2k ohm). The galvo is super sensitive, the slightest air flow moves it, but I guess sub-mg weights are so tiny, that even these results are great.

200 ohm (10 mA):
- PWM @ zero = 54 (5%)
- max = 156mg
- resolution = 0.160mg (156 / (1024 - 54))

2k ohm (1 mA):
- PWM @ zero = 347 (33%)
- max = 26mg
- resolution = 0.038mg (26 / (1024 - 347))

To get near 1µg sensitivity, one would have to use a 20k (or 200k) resistor, which would (by extrapolation) give max lift of about 4mg (0.66mg), but you need more than that just to move the needle, so it would be impossible with this particular galvo.

Nevertheless, despite these facts, I'm quite satisfied. Plus, it may be possible my calibration weights are off by order(s) of magnitude :) and in that case all these numbers would shift down and make for a pretty neat 1µg scale. :)

BTW, I use the small galvo from a generic 0-15V panel of about 10x10cm. I removed the fitted resistor to get my own range.

So, to sum up:

1) Can you see why the zero point doesn't fit the linear progression?

2) How do you think the NatSemi guy got so much precision with such a huge galvo? I mean my needle is really a needle, his needle is massive in comparison. The movements on his scale must be invisible by the human eye.

Thanks.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
1) Can you see why the zero point doesn't fit the linear progression?
If the galvano you use has bearings (emerald f.i.), their friction will be the highest when starting the movement.

Quote:
2) How do you think the NatSemi guy got so much precision with such a huge galvo? I mean my needle is really a needle, his needle is massive in comparison. The movements on his scale must be invisible by the human eye.
Size says nothing about sensitivity. And you are not using the slot-detector: you use your eyeball to see if the galvo is in zero-position ?
In the old days, with analog instruments, I ticked on the glass to overcome that initial friction. Like one does on a barometer.

I'd love to see some pictures :)

I also wondered about calibration weights: my plan is to take 320mm thin wire, measure it's weight on a 10mg accurate scale, cut the wire in half, than cut one of the halves again etc.

I think that if you use the slot-detector in an analog way, your precision will go up as well.

I have been working on other things in the past days, and interesting enough: I used a Freeduino with a protoshield to test a DDS based on AD9850. I needed a low power (1mA) negative voltage and made the Freeduino do that. But because the layout of the Freeduinoboard I expected troubles ahead, and yes, there was a bear on the road: oscillation due to ground-noise.

PS: DDS = Direct Digital Synthesis

cheers !

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'll reply in depth later tomorrow, I'm driving back to Germany on a project in the morning. I'll be a busy week, but maybe It'll take the Seeeduino with me and experiment after work. If so, I'll take some pictures for you. If not, they'll be available next weekend.

I also connected the detector, but on its own, not via the board. It looks good, I've experimented with different resistors on the transistor emitter and had the most success with 300R. On it, I read 2.9V when the slot is free and 1.2V when the tiny needle passes through in the center-most part.

I've tried larger resistances and with them I got full 5V when free, but the voltage drop was much smaller when the needle passes through. I'm not sure why, guess it has something to do with transistor saturation etc., but the 1.7V drop with 300R should be sufficient to recognize some pretty tiny movements.

The galvanometer is pretty cheap - there is no special bearing, just a coil rotating around its axis, the axis being a needle (sharp on both sides). It's kept in place by two spiral springs (one on each side) that twist in the opposite direction. Inertia doesn't seem to be a problem, but the clearance is. I had to fiddle with how tight the axis needle fits between the bearings and rotate the springs, otherwise when you moved the needle up a lot, it returned slightly higher than it started and the same when moved down. It doesn't return to the exactly same position.

I unscrewed the bearing as much as possible and now it moves freely and the clearance is minimal, but still visible by the naked eye. I guess something much pricier would be required to solve this.

Calibration - I also thought about that. :) But I don't have a sub-g scales, so it wouldn't help me. I found a rather cheap calibration weight set: 1mg - 100g for $47 (class M2, probably). In the E1/E2 class, you pay this much for one piece! :)

You could use these - cheapest I've ever seen, by much! For me, with intl. shipping, they'd cost more than the ones I ordered:
http://www.americanweigh.com/pro...

You must tell me more about the DDS, sounds interesting.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
... but the voltage drop was much smaller when the needle passes through.
No pennon ?

I have been thinking a bit about how to overcome the initial friction: how about adding some noise to the coil-driving signal ? And reduce it over time (1 second or so) to 0 ?

About the DDS: one project at the time, David :) But here a link on what I sorted out. It's in Dutch, but schematics, software en comments in SW are in English: http://www.aplomb.nl/Niels_skn/Niels.html#DDS_AD9850_module

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

No pennon at this time. It would be better with, but I need to hang a scoop at the end of the neeedle (like a reverse parachute) and even with the lightest of materials, it's gonna drag it down and lower the max capacity somewhat.

On the other hand, with the pennon, I'd have a clear idea where it is in the slot - voltage ranging from full on to full off. Without it, I need to hunt for the lowest voltage possible, but not really knowing if I'm moving too far down or up. That's rather inconvenient and would have to be solved in SW.

The noise - good idea. The problem is I'm not sure that's gonna help with the "zero/empty" position. In that position, even the slightest PWM +/- moves the correct amount up/down. It doesn't stick. It moves smoothly with or without any load.

I think the non-linearity of this point may be caused purely by physics. I mean when I say that a needle in the horizontal position is "0", I'm actually already pushing some weight - the needle itself (not 0mg).

Then, when I place extra weight at the tip, I'm pushing the needle + the weight, but I also shifted the center of gravity of the combined weight and its weight isn't proportional to the empty needle, because of how lever/fulcrum works.

What do you think? I want to fix this one first and them move on to the interrupter & pennon.

What's weird is that if my theory is correct, the deviation of the empty needle should be consistent, but if you look at those graphs, it's not. First was lighter than the expected linear progression, the second was heavier.

DDS: I see, it's a signal generator, nice. For testing purposes? That's your page you linked here? If so, you've been quite busy I see. :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I think the non-linearity of this point may be caused purely by physics. I mean when I say that a needle in the horizontal position is "0", I'm actually already pushing some weight - the needle itself (not 0mg).

Then, when I place extra weight at the tip, I'm pushing the needle + the weight, but I also shifted the center of gravity of the combined weight and its weight isn't proportional to the empty needle, because of how lever/fulcrum works.

What do you think? I want to fix this one first and them move on to the interrupter & pennon.

I have given it some thought: the center of gravity (CoG) for needle + weight shifts when weight varies. That's correct. But the resulting CoG will always be the sum of the separate CoG's. Vectorwise.

I also believe that there is always an initial friction that needs to be overcome when the needle goes from standstill to a move. But yes, it will be very small ! Otherwise the galvano would be useless for it's purpose.

I did some digging in the attick, ... there must be a galvano there. But cannot find it. Happens more and more. Too much stuff, too slicky memorycells :)

Quote:
DDS: I see, it's a signal generator, nice. For testing purposes? That's your page you linked here? If so, you've been quite busy I see.

I often buy electronics in group-buy-actions. The guy I often buy stuff from has great difficulty with collecting and posting the info. It also happens that it's incomplete or wrong. I can sort most things out myself, but see no reason to keep it TO myself; hence the webpage: now all co-buyers benefit.
The DDS is one of those things where curiosity is the main drive. In that respect I am still very young :lol: But I don't really need it: there is already a (home-built) signal generator on the shelf. And pretty soon it will get company.

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I made some cal weights: silverplated thin copper wire:
960mm weighs 1.12 gram; smallest piece now is 5mm --> 5.83 mg. At least something to start with ;)
I will give it a try with a VU-meter: that's what I could find

Nard

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I used a small U meter as well. I don't have enough free time here to continue, so I'll have to experiment later, during the weekend.

Pages