GT2560 with i2c on Geetech i3 3D Printer

Hi!
May be i can get some hints here, because i am kind of stuck.

I want to use the experimental i2c of Marlin with my GT2560. Therefor i added an extra port to the LCD-Lines 5,7 and 2. There i connected a Mega with SCL/SDA/GRD.
As soon as i activate the experimental i2c-Bus, the display starts (after updating) acting weird. It's the standard RepRap-Display/Controller-Unit. The controller still works fine, but the display shows crap-characters.
Any ideas?
Kind regards,
Andy

The GT2560 board: GT2560 - Geeetech Wiki
Schematic: GitHub - Geeetech3D/Diagram: Circuit diagram for 3D printers

afbeelding

Those pins are already in use for the display. You can not use those pins for the display and the I2C bus.

May be i got that wrong, but isn't the i2c a 2-wire-bus?
So i was was assuming, i can just add any client with a valid address into that line. From arduino to arduino it works just fine like that. Did some quite complex networks with it.

Which display is acting weird ? The display that is still connected to those pins that are now also the I2C bus ?
You can not use those pins for two different things at the same time.

Can you put those LCM_RS and LCM_D5 on other pins ? Or disable the display in software completely ?
The hardware of the ATmega2560 has the I2C bus at fixed pins. You can not assign them to other pins, but you can use a Software I2C library.

I think that I don't understand your question. If you were a beginner then I would say: If your theory is right, then every Arduino board needs only one pin, because that one pin can be used for everything at the same time.

You can connect mutiple ardiunos by i2c at the same time. One needs to be the master, all others are slaves. I have a setup here (other project), working perfect like that. The master is sending/retrieving data from one slave and passes them to the other slave. This uses just the SCL/SDA-Pins connected in line.
There are just these two SCL/SDA-Pins on my GT2560-Board. They are connected to the LCD-port and using the i2c method to communicate.
The issue appears as soon as i activate the exp-i2c, even if the arduino that i want to bring in is not hooked up. May be there is a conflicting address when i activate the exp-i2c.

Tell me about the display.
Is it connected to the same pins as the I2C bus ?
Is that a I2C display or does it use the LCM_RS and LCM_D5 (and other LCM_...) signals ?

This is just the first thing to figure out.
The next thing is that a display can do weird when the voltage is below 4.5V.
And the third thing is to check what the software of exp-i2c is doing.

Tonight i will unmount the display/controller-unit to see what exactly i am dealing with. On the frontpanel of the printer it says just LCD2004 wich can be anything. Found some schematics. There it says, the SCL to D25 and SDA to D27. No more info, yet. :slight_smile:
The voltage should be fine. Didn´t measure it, but when i don´t activate exp-i2c the display works as it should.
The "exp-i2c" is just a shortcut for "experimental i2c bus", an option included in Marlin (see configuration_adv.h).

I am still very confused. In the schematic is a connector for a display (it is not a I2C display in the schematic). In the photos it is the black connector.

Is a display connected to that connector ?

Yep, that´s the connector. And here is the corresponding schematics to the board...

Then I was looking at the wrong schematic.
If you scroll up to post #2, there is a schematic with a display that is not a I2C display.
I gave a link as reference where I found the schematic, version V3.0.
Can you give a link where you found your other schematic, Rev A+.

Suppose that a I2C display is connected and the 5V is okay, then are still (too) many things that can cause it:

  • It is possible that the I2C bus has too much or too little pullup.
  • It is possible that you use a flat ribbon cable where SDA is next to SCL and that disturbs the I2C communication to the display.
  • You could use a Wire.begin() which re-initializes the I2C and sets it to something different.

I don't know if I can help further with so little information.

I experienced the i2c-bus as very tank-ish, wich means not as tight-ass as RS485 f. e.
The ribbon-cable is factory-setup - so i don´t think the issue is based here. And also it works fine if the experimental i2c is not activated wich points more at a setup-issue on the bus.
As i said, i will give an i2c-scanner a try to find out, if there is an adress-interference.
I´ll keep u up to d8!
Here is the Link to the schematics: klick me :slight_smile:

So, did a quick i2c-Scan with deactivated experimental i2c and found 126(!) devices with ID from 1(0x01) to 126 (0x7E). A master (iD 0) wasn´t shown. May be the scanner identified itself as one - or as the missing 127...
When i unplugged the lcd there was no bus. I was hoping to identify the display by another scan without it...rats!
Tomorrow i will try the same with activated experimental i2c.
Yesterday i tested the printer with activated experimental i2c by selecting a certain gcode in "blind mode" (no display as mentioned). When it (i assume) came to my extra codeline the job was stopped. Maybe because of an i2c-adress-collision.
Can´t wait for tomorrows try-outs :slight_smile:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.