Testing my code for the HMC5843 turns out that the labeling for the axis may be wrong. The sign directions are different too. I checked against the Board from Sparkfun. Looking at the datasheet, the components axis described there are when you look at the bottom of the device. The schematic pictures is mirrored upside down to show a view from the top.
What would be good would be to try another magnetometer. If you have two mags usign the same set-up but one goes bad and one doesn't then you know it's the mag that's broken. Of course if you still have the problem it's mostly likely something external (although it's possible you've then receive *another* bad mag or that you've damaged it in the same way as the first one but it's unlikely).
Thank you very much for the replies, very usefull, I mix all and finally overcame the problem. The signals are stable and fine now as you can see at the picture that I attached, It shows the signals after 25min that the board was powered-up and everything ok, very low spread and std deviation!! It worked for more than 3 hours and no problem!!
What was wrong?!? I only change the voltage set up (solder jumper) from 5V to 3V3 of the HCM5843 board. and did the connections like Fabio show at http://www.varesano.net/files/HMC5843_Arduino_basic_connection.JPG
except for the pull-up resistor that I used 4k7 instead of 2k2.
In this configuration the I2C signals are 3V3 (osciloscope checked).
I also did it in another way: I inserted a Sparkfun logic level converter (http://www.sparkfun.com/products/8745) and it works fine too, with 3V3 on the side of the HCM5843 board and 5V on the Arduino side.
My conclusion (despite my poor knowledge about eletronics) is that my HCM5843 board has a problem in the on-board logic level converter or may be in voltage regulator!!
On my project probably I have to use the logic level converter because because there are other I2C device that works with 5V!!
Later I'm going to send further details ...
Thank very much
Well done! I think you're probably right that there's some issue with the voltage regulator on the mag. you're bypassing it when you switch it to 3.3v and use the level converter.
great analysis and even better that you sorted it out in the end!
The voltage reg wouldn't happen to be the same one that caused so many problems by being unable to maintain voltage on the MediaTek adapter board, is it?
Hello Ken, Chris and everybody
Ken, I agreed with you. My logical sense says that the problem is related to the part that I isolated or by-passed when I changed the solder jumper from 5V to 3V3. It could be the voltage regulator (I don´t believe) or/and the on-board logic level converter.
My board could be defective in particular or it could be a problem of all boards when working with 5V (design problem)!
As I sad before, I´m not expert in eletronics stuffs!!
What I can say is that now my board is running perfect in 3V3 mode with: a Sparkfun logic level converter or without it, 2 versions of code (ArduIMU or HMC library) and with different values of pull-up resistors!!
Chris, I would appreciate feed-back about this issue.
thank you very much
What exactly do you mean when you say that there is lot of work?
Well, when you get older many things get more and more complicated :-)
The days I started my programmer career as hobbiest, DOS 3.1 was cutting edge technology.
Calculating 3D vectors and such thing are very new to me. Reading source code of others and googling for education videos helps me to understand a bit more.
I found out that I have to calibrate values from the sensors to get valid results on the processing code.
Thanks to everybody helping with information and knowhow here!
I think it´s the last time I´ll be here. But only to close definitely the issue that
I had discussed with you and you help-me a lot.
The problem that I had with my DIY HCM5843 board is a design problem.
I did the job as described by Jordi at http://diydrones.com/profiles/blogs/diydrones-magnetometer-issue?id...
turned my board back to 5V and now it is working fine also with 5V.