United Kingdom
Asked — Edited

Hmc5883l Triple Axis Magnetometer Help


So finally I got may HMC5883L Triple Axis Magnetometer through. But I can't seem to get it working and there doesn't seem to be any reference to it only a dual axis one.

All connections were obvious so I know they are right. It's connected to the 3.3v not 5v.

I can't say much more than that.

I tried using the dual axis options but it only returns a heading of 44 all the rest of the values return -1.

I'd prefer to be using c# scripting if this helps at all.


Upgrade to ARC Pro

Get access to the latest features and updates before they're released. You'll have everything that's needed to unleash your robot's potential!

United Kingdom

The datasheet should tell you how to use it. Do you have the datasheet?

United Kingdom

er..... no I don't. Got it off ebay. ill do a quick search now confused

United Kingdom

The number one rule, always make sure you can get a datasheet:) I learnt that the hard way too.

If it's a breakout board you may need the schematic from the company who made the board too if connections, voltages etc. aren't clear.

United Kingdom

connections and stuff are all marked ok gnd,vcc,scl,sda etc just don't get how to read it

United Kingdom

Find the datasheet first, on it it should (however it's not guaranteed) tell you what you need to do to get the data from the sensor.

You use the i2cread command (I believe it is currently not working like it should though so be aware of that possible bug in 2013.07.10) to store the data i.e. (this isn't the actual code, I don't have the datasheet to check)

$raw = I2CRead(0, auto, 0x4a, 3)

Have a read of the script help in ARC for the i2c read command, hopefully it'll make sense to you.

I can't help with c# though, I don't know it well enough yet although I suspect it'll be similar.

United Kingdom

Will do. been waiting ages for this its gonna work whether it wants to or not


When you find the Datasheet go ahead and post the link here. That way we can all take a look at what is going on, and give you some guidance :)

United Kingdom

thanks guys, still looking for one, all ive found is this for arduino http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Magneto/HMC5883L-FDS.pdf

United Kingdom

That'll do, I think... I only had a quick look as I really should be doing some work but when I get chance I'll have another look if you need it.

Look at page 11 and the last few pages, they should help you. From a very quick look it looks like it's a good datasheet which is half the battle.

United Kingdom

excellent thank you. knowing its a good start is a great help. I'll leave this thread unresolved for a bit incase anyone can advise a bit more if I get stuck

United Kingdom

Hi guys

Still can't figure out how to get this working confused its driving me nuts

United Kingdom

Have you tried with the latest ARC update, I briefly read the notes and noticed something about I2C Read being fixed... that may be something.

Other than that, what can't you do?

United Kingdom

No I haven't let it update yet actually. I do remember talking with DJ about some usefull things we could do with when it came to i2c and he mentioned there was some changes coming. I'll check it out now.

If it don't work with it it only cost my £3 including postage. No real loss. It works with other controllers like arduino but they have a dedicated library.

United Kingdom

All the commands are in the datasheet you linked to.

I2C Address for read is 0x3D so,

$raw = I2CRead(0, auto, 0x3D, 8)

should store the sensor values in the variable $raw.

United Kingdom

Ah right, thought you had to send request commands to it and such

United Kingdom

You may need to do some I2CWrites to initialise it and get it in the correct mode, the details are in the datasheet.

Where did you get it? I can always get one and have a play too, £3 isn't going to break the bank.

United Kingdom

@Rich sorry about taking so long. Bloody internet went down, had to deal with the 'Real World' stress

any way heres the direct link to where I got it. Takes a couple of weeks to get here http://rover.ebay.com/rover/0/e11400.m1842.l3160/7?euid=b57bc911f9174b9d8179d4d5dd710e95&loc=http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem%26item%3D171028749692%26ssPageName%3DADME:L:OC:GB:3160

United Kingdom

@Jaychadw interested to know what you want a magnetometer for? If you have an Iphone the new sensor stream can display the Teslameter in 3 axis its kinda fun waving a magnet near my phone and watching the figures change. Very sensitive as well



Old discussion but apparently no solution has been found. I'm also Struggling trying to use HMC5883L chip which crashes my EZB everytime I try to initialize it, using the EZB tutorial's script.

I get that I have to write something, using the datasheet but I can't figure what I'm suppose to send to this i2C device... what hex data am I suppose to write?

Well, I'm totally lost. I'd love my robots to know which direction they're heading though.

Rich? Any help? TheTechguru? Someone? :)