go away spammer

Author Topic: Shielding Digital Compass  (Read 6196 times)

0 Members and 1 Guest are viewing this topic.

Offline rbtyingTopic starter

  • Supreme Robot
  • *****
  • Posts: 452
  • Helpful? 31
Shielding Digital Compass
« on: November 13, 2010, 09:43:33 PM »
Hey all,
     I've got a Honeywell HMC6352 on my robot, and as soon as motors start up, the readings go crazy (understandable).  I'm wondering how others have solved this problem - is a short distance from inductors good enough (and if so, how far), or is there some special material that I need to put in between, or anything else?  Thanks ahead of time for your  help.

Offline dunk

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 1,086
  • Helpful? 21
    • dunk's robot
Re: Shielding Digital Compass
« Reply #1 on: November 14, 2010, 04:20:52 AM »
putting some distance between the sensor and the motors is the best solution.
many robot applications using Digital Compass put the sensor at the top of a long mast.
ugly but practical.

current flowing through a wire creates a magnetic field as well
so keeping any wires carrying high current as short as possible and keeping the compass away from those will help a lot.

i'm considering adding a compass to my UAV. i'll probably put it either on one of the wing tips or on the tail to keep it away from the motor and other electronics if i do.


do the motors provide a predictable deflection in the compass readings or is it just random noise?
if the readings are stable when the robot is not turning and the motors are running you might try a software filter.

a lookup table is one option. test experimentally the amount of interference at each angle / motor speed combination.

have a read of this post which definitely won't solve your problem but is interesting background reading on calibrating a compass:
http://diydrones.com/forum/topics/automatic-nulling-of


dunk.

Offline azy

  • Full Member
  • ***
  • Posts: 107
  • Helpful? 0
Re: Shielding Digital Compass
« Reply #2 on: November 14, 2010, 05:50:14 AM »
Brushed motors benefit from having suppressors/capacitors fitted.....have got them fitted on your motors ?

Shielding sensitive electronics with aluminium foil also helps.

Also check your earthing. make sure that everything that could be grounded is.

Also consider using Schottky diodes

http://en.wikipedia.org/wiki/Schottky_diode

http://en.wikipedia.org/wiki/Inrush_current_limiter

I used Inrush curret limiters on one of my projects, not sure if they are suited to yours. They mop up current going  to the motors at start up. Once they heat up current flows more freely. On a second start they are allready warm and  the motors spool up a little quicker. ( I even used a bunch of them as a bullet proof speed controller )

http://en.wikipedia.org/wiki/Varistor

http://en.wikipedia.org/wiki/Transient_voltage_suppression_diode

I had a lot of problems with my high performance RC models. all that current and arcing caused a big headache
all sorts of electrical and magnetic Fields are generateed, hi current motors are really bad for this.

I'm not expert on electronics, I'm sure someone here can give you finer advice on these matters & help you solve your problem, sorry i cant help more than this
« Last Edit: November 14, 2010, 06:07:32 AM by azy »

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Shielding Digital Compass
« Reply #3 on: November 14, 2010, 07:57:00 AM »
Hi,

Shielding sensitive electronics with aluminium foil also helps.
Aluminum doesn't do much good stopping magnetic interference, iron plate does.

If it were a stable offset, which I doubt though, a permanent magnet could be used to bias the compass. An electronic bias is possible too, but only with a steady offset.

Mounting inductors at different angles relative to the compass, to keep their fields away from it will help too, but the motors will likely be the worst problem, so that should be the first thing to attack.

Twisting the motors power wires and if possible, mount them in an iron tube for as long a bit of their run as possible. Shield the motors with iron plate (but make sure they can still get rid of heat).

Changing the PWM frequency (experiment) might help and (shielded) LC filters will ensure a "soft" waveform to the motors, eliminating some magnetic emission as well.

And, as dunk suggests, distance is the ultimate tool for getting what's left, as magnetism, like light, gets weaker by the square of the distance.
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline azy

  • Full Member
  • ***
  • Posts: 107
  • Helpful? 0
Re: Shielding Digital Compass
« Reply #4 on: November 14, 2010, 10:09:40 AM »
I'm assuming the ally foil (ive seen in a number of applications) helps shields from em radiation...radio waves...like a faraday cage ?

Steel wrapped round the motor casing helps contain the magnetic feild.

Offline rbtyingTopic starter

  • Supreme Robot
  • *****
  • Posts: 452
  • Helpful? 31
Re: Shielding Digital Compass
« Reply #5 on: November 14, 2010, 11:43:24 AM »
putting some distance between the sensor and the motors is the best solution.
many robot applications using Digital Compass put the sensor at the top of a long mast.
ugly but practical.

Does this long mast have to be relatively tall?  It wouldn't be very easy to mount it more than a few inches up, for balance issues. 

current flowing through a wire creates a magnetic field as well
so keeping any wires carrying high current as short as possible and keeping the compass away from those will help a lot.

I noticed that readings start screwing up a little around high frequency I2C and USART lines... Do I need those to be shorter or something?

do the motors provide a predictable deflection in the compass readings or is it just random noise?
if the readings are stable when the robot is not turning and the motors are running you might try a software filter.

Reading deflection isn't very stable, and fluctuates with battery voltage, so it'd be hard to predict (I don't quite know the math yet =))

Brushed motors benefit from having suppressors/capacitors fitted.....have got them fitted on your motors ?

I've got a small cap running from one lead to the other - is that right?

Shielding sensitive electronics with aluminium foil also helps.

How much do I need?

Also check your earthing. make sure that everything that could be grounded is.

Err... how would you have a circuit that isn't grounded and still works?

Also consider using Schottky diodes

http://en.wikipedia.org/wiki/Schottky_diode

http://en.wikipedia.org/wiki/Inrush_current_limiter

I used Inrush curret limiters on one of my projects, not sure if they are suited to yours. They mop up current going  to the motors at start up. Once they heat up current flows more freely. On a second start they are allready warm and  the motors spool up a little quicker. ( I even used a bunch of them as a bullet proof speed controller )

http://en.wikipedia.org/wiki/Varistor

http://en.wikipedia.org/wiki/Transient_voltage_suppression_diode

I had a lot of problems with my high performance RC models. all that current and arcing caused a big headache
all sorts of electrical and magnetic Fields are generateed, hi current motors are really bad for this.

I'm not expert on electronics, I'm sure someone here can give you finer advice on these matters & help you solve your problem, sorry i cant help more than this


How much does reducing current reduce interference?  It doesn't seem to be directly related...

Hi,

Shielding sensitive electronics with aluminium foil also helps.
Aluminum doesn't do much good stopping magnetic interference, iron plate does.

If it were a stable offset, which I doubt though, a permanent magnet could be used to bias the compass. An electronic bias is possible too, but only with a steady offset.

Mounting inductors at different angles relative to the compass, to keep their fields away from it will help too, but the motors will likely be the worst problem, so that should be the first thing to attack.

Twisting the motors power wires and if possible, mount them in an iron tube for as long a bit of their run as possible. Shield the motors with iron plate (but make sure they can still get rid of heat).

Would it be possible to shield the compass instead with steel plating?  The motors could be a little hard (they're in Solarbotics gearboxes, and so aren't totally exposed)

Changing the PWM frequency (experiment) might help and (shielded) LC filters will ensure a "soft" waveform to the motors, eliminating some magnetic emission as well.

And, as dunk suggests, distance is the ultimate tool for getting what's left, as magnetism, like light, gets weaker by the square of the distance.

Is there a way to measure the shortest distance needed to reduce the interference to an acceptable level (< 1deg variation between readings)? 

Thanks everyone for the quick replies!

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Shielding Digital Compass
« Reply #6 on: November 14, 2010, 12:06:11 PM »
Hi,

I'm assuming the ally foil (ive seen in a number of applications) helps shields from em radiation...radio waves...like a faraday cage ?
Sounds like you are confusing H-fields and E-fields?
Aluminum (copper, silver etc) shields only against E-fields (thin foil is not as effective as thicker layers of course).


Steel wrapped round the motor casing helps contain the magnetic feild.
Yes somewhat, but soft iron is much better.

A dual layer of iron plate, separated by a small distance, is a very good screen and the inbetween-material can be foam or massive plastic of sorts.
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

Offline dunk

  • Expert Roboticist
  • Supreme Robot
  • *****
  • Posts: 1,086
  • Helpful? 21
    • dunk's robot
Re: Shielding Digital Compass
« Reply #7 on: November 14, 2010, 03:49:10 PM »
putting some distance between the sensor and the motors is the best solution.
many robot applications using Digital Compass put the sensor at the top of a long mast.
ugly but practical.

Does this long mast have to be relatively tall?  It wouldn't be very easy to mount it more than a few inches up, for balance issues. 
yea. probably.
rather than researching the way to calculate the exact distance it's probably easier to work it out experimentally.

current flowing through a wire creates a magnetic field as well
so keeping any wires carrying high current as short as possible and keeping the compass away from those will help a lot.

I noticed that readings start screwing up a little around high frequency I2C and USART lines... Do I need those to be shorter or something?
so I2C and USART lines should be fairly low current so they shouldn't make too much difference. but yes, keep any wires that run close to your compass as short as possible.


dunk.

Offline rbtyingTopic starter

  • Supreme Robot
  • *****
  • Posts: 452
  • Helpful? 31
Re: Shielding Digital Compass
« Reply #8 on: November 14, 2010, 04:18:15 PM »
Steel wrapped round the motor casing helps contain the magnetic feild.
Yes somewhat, but soft iron is much better.

A dual layer of iron plate, separated by a small distance, is a very good screen and the inbetween-material can be foam or massive plastic of sorts.

How thick would the plates need to be, and how far apart? (1cm?)  and HDPE works in between, right?

putting some distance between the sensor and the motors is the best solution.
many robot applications using Digital Compass put the sensor at the top of a long mast.
ugly but practical.

Does this long mast have to be relatively tall?  It wouldn't be very easy to mount it more than a few inches up, for balance issues. 
yea. probably.
rather than researching the way to calculate the exact distance it's probably easier to work it out experimentally.

current flowing through a wire creates a magnetic field as well
so keeping any wires carrying high current as short as possible and keeping the compass away from those will help a lot.

I noticed that readings start screwing up a little around high frequency I2C and USART lines... Do I need those to be shorter or something?
so I2C and USART lines should be fairly low current so they shouldn't make too much difference. but yes, keep any wires that run close to your compass as short as possible.


dunk.

I'll make a test setup and experiment with height, then. 

So it seems I should either build a shield out of iron or raise it up from the chassis higher?  (or both)?  Thanks for the help, guys!

Offline Soeren

  • Supreme Robot
  • *****
  • Posts: 4,672
  • Helpful? 227
  • Mind Reading: 0.0
Re: Shielding Digital Compass
« Reply #9 on: November 14, 2010, 04:47:56 PM »
Hi,

How thick would the plates need to be, and how far apart? (1cm?)  and HDPE works in between, right?
That would depend on the magnitude of the field you want to screen it against, the amount of dampening needed, the frequency of the field etc. - That said,  just grab a single plate and bolt it on temporarily to see how it works and if that's enough (a manual compass is a great aid here, check before and after). You don't have to shape the plate for a first try.

Only  if that's not enough you need 2 layers of iron and if so, HDPE would be fine (or air for that matter, if you can mount them a distance apart with eg. plastic screws). Experiment with the distance if needed, but even 2..3 mm should work.

When you reach something useable, give it a little extra (like make the dunk-deviced standoff 10..20% higher), to make sure it works under all circumstances and ambient situations.


If your motors are small enough, perhaps tobacco tins, biscuit tins or paint cans could be used - if larger, perhaps try mild steel car body plate if all else fails (might be improved if heated to cherry-red and held for a couple of minutes, followed by a slow cooling off, to get rid of some of the carbon, but I'm not sure the result is worth the effort).
Regards,
Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?
Please remember...
Engineering is based on numbers - not adjectives

 


Get Your Ad Here