Help with i2c send error, accelerometer [SOLVED]

Having a problem? Post it here and someone will be along shortly to help
Post Reply
silver8980
Noob
Posts: 3
Joined: Sun Dec 18, 2016 2:49 pm

Help with i2c send error, accelerometer [SOLVED]

Post by silver8980 » Mon Dec 19, 2016 1:55 pm

Hi all,

I'm troubleshooting an error trying to get the accelerometer to work on my Rostock V2. I am using an E3dV6 hotend. I have wired it according to the seemecnc upgrade guide https://d17kynu4zpq5hy.cloudfront.net/igi/seemecnc/p6BKtcgdWItqZBLO.huge

I'm getting a i2c send error as per the print log below.

I'm confident it is wired correctly; verified with a multimeter, and I get a different (send & receive) error if I unplug both red and black i2c wires off the rambo.

I feel like it may have something to do with PS-ON? I saw In another guide PS-ON was swapped with serial pin 2. I still receive a send error if I swap these. http://forum.seemecnc.com/viewtopic.php?f=35&t=10757

I've tried flashing the firmware a few times making sure to clear the eeprom before flashing. Also tried changing printer type v2>v3.

At least the printer is still able to print, I hope I'm not missing something to obvious :)

->Communication State: AttemptingToConnect

->M105

<-start
->Communication State: Connected

<-
->M115

<-Transformation matrix: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000
<-
<-Free RAM:866
<-
<-Autoretract:0
<-
<-X:0.00 Y:0.00 Z:0.000 E:0.0000
<-
<-SpeedMultiply:100
<-
<-iis2dh accelerometer initializing...
<-
<-accelerometer send i2c error.
<-
<-read reg 15 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 49 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 32 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 32 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 34 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 34 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 37 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 37 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 35 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 35 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 36 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 36 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 48 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 48 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 49 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 50 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 50 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 51 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 51 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 52 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 52 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 54 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 54 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 55 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 55 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 56 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 56 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 57 value: 0
<-
<-accelerometer send i2c error.
<-
<-read reg 58 value: 0
<-
<-accelerometer write i2c error.
<-
<-accelerometer send i2c error.
<-
<-read reg 58 value: 0
<-
<-ok 0
<-
<-FIRMWARE_NAME:Repetier_0.92.2 FIRMWARE_DATE:20161209 MACHINE_TYPE:Rostock MAX v3
<-
<-Printed filament:0.00m Printing time:0 days 0 hours 0 min
<-
->M114
Last edited by silver8980 on Mon Dec 19, 2016 9:55 pm, edited 1 time in total.

Eric
Printmaster!
Posts: 726
Joined: Sat Aug 18, 2012 4:09 am
Location: Chula Vista, CA

Re: Help with i2c send error, accelerometer

Post by Eric » Mon Dec 19, 2016 5:32 pm

I know you think you have everything wired correctly, but odds are this is a wiring issue of some kind.

Do you have your E3dV6 heater and thermistor wired via the HE280, or is the HE280 wired independently? Pictures may be easier than words.

For I2C to function, you need 12V Constant, GND Constant, SCL, and SDA pins connected. The INT pin for probe hits is also needed, but that's not part of I2C comms, so can't be responsible for the errors you're quoting.

Image

silver8980
Noob
Posts: 3
Joined: Sun Dec 18, 2016 2:49 pm

Re: Help with i2c send error, accelerometer

Post by silver8980 » Mon Dec 19, 2016 6:50 pm

*sigh* I agree it's probably my doing :roll: My e3dv6 heater and thermistor are wired via the he280. I'll grab a pic when I get back home.

silver8980
Noob
Posts: 3
Joined: Sun Dec 18, 2016 2:49 pm

Re: Help with i2c send error, accelerometer

Post by silver8980 » Mon Dec 19, 2016 9:54 pm

SOLVED! It was a ferrite choke I had installed on the SDA and SCL! Not sure why but it refused to work with it installed. I ended running a new set of wires to the probe on the bench to figure it out.

Its interesting that some people have had luck with the chokes vs this situation. Anyone have any ideas why?

User avatar
rurwin
Printmaster!
Posts: 68
Joined: Sat Sep 24, 2016 10:43 am
Contact:

Re: Help with i2c send error, accelerometer [SOLVED]

Post by rurwin » Wed Dec 21, 2016 8:50 am

A choke will stop all AC that tries to go through it, the higher the frequency the more it will get cut. SDA and SCL are both AC signals, quite fast ones too.

A choke works by resisting the change in a magnetic field. Current in the wire induces a magnetic field. As the current changes the magnetic field changes. The choke resists that by inducing a counteracting current in the wire, effectively preventing the change.

If a wire with a DC current is choked, then the choke will remove all unwanted high-frequency noise from it.

You can also choke a set of wires that have a complete AC circuit going through them, then the magnetic field from the current going out is negated by that from the current coming back. The choke sees no changing magnetic field so it doesn't stop anything. It will still remove high frequency noise that is in the same sense on all the wires. This is called "common-mode" noise. You can choke an ethernet cable* for that reason; the data lines are differential pairs so each pair's currents are equal and opposite. But I2C is two signal wires over a 0V reference. The 0V line is not guaranteed to have all and only the return current from I2C on it. So it won't work.

----
* You can. It isn't necessarily a good idea.

Post Reply

Return to “Troubleshooting”