user11595: So i got that 2,5m cable wired with the LCD and the arduino, but i keep getting those weird characters showing up on the LCD. Clearly there is a signal loss between the components but there has to be a solution to the problem. Perhaps by connecting capacitors/resistors to the wires will help? Is there any solution other than not using this long cable?

user11614: If the interface you're using is I2C(only two cables from arduino to lcd, vice versa)you have a problem,you need to pull up the sda-scl channel with appropriate resistors, you could (maybe) boost the I2C signal using ti-p82b715 bus extender, I just assume you use I2C (2,5m length?), what interface do you use? SPI? I2C?

user10794: I'm presuming this is I2C or SPI, because a Serial cable of 2.5 m should still work.
You can slow both I2C and SPI down.

In the case of SPI you can call something like this:
SPI.setClockDivider(divider);

Where "divider" is one of:

SPI_CLOCK_DIV2
SPI_CLOCK_DIV4
SPI_CLOCK_DIV8
SPI_CLOCK_DIV16
SPI_CLOCK_DIV32
SPI_CLOCK_DIV64
SPI_CLOCK_DIV128 

The default is SPI_CLOCK_DIV4, so try a larger divider.

In the case of I2C you can change the clock speed and the prescaler. The default frequency is 100 kHz, but you could make it slower.
TWBR   prescaler   Frequency

  12       1       400   kHz  (the maximum supported frequency)
  32       1       200   kHz
  72       1       100   kHz  (the default)
 152       1        50   kHz
  78       4        25   kHz
 158       4        12.5 kHz

For example, to run at half the frequency (50 kHz) use:
  Wire.begin ();
  TWBR = 152;  

To run at 25 kHz you also need to change the prescaler, eg.
  Wire.begin ();
  TWBR = 78;  
  TWSR |= bit (TWPS0);

In the case of I2C make sure you have pull-up resistors on SDA and SCL in order to get a clean signal. 4.7 k is a reasonable value to try (for both of them) with the other ends connected to +5 V.

11595: <p>So i got that 2,5m cable wired with the LCD and the arduino, but i keep getting those weird characters showing up on the LCD. Clearly there is a signal loss between the components but there has to be a solution to the problem. Perhaps by connecting capacitors/resistors to the wires will help? Is there any solution other than not using this long cable?</p>
 11614: <p>If the interface you're using is I2C(only two cables from arduino to lcd, vice versa)you have a problem,you need to pull up the sda-scl channel with appropriate resistors, you could (maybe) boost the I2C signal using ti-p82b715 bus extender, I just assume you use I2C (2,5m length?), what interface do you use? SPI? I2C?</p>
 10794: <p>I'm presuming this is I2C or SPI, because a Serial cable of 2.5 m should still work.</p>

<p>You can slow both I2C and SPI down.</p>

<hr>

<p>In the case of <a href="http://www.gammon.com.au/spi" rel="nofollow">SPI</a> you can call something like this:</p>

<pre><code>SPI.setClockDivider(divider);
</code></pre>

<p>Where "divider" is one of:</p>

<ul>
<li>SPI_CLOCK_DIV2</li>
<li>SPI_CLOCK_DIV4</li>
<li>SPI_CLOCK_DIV8</li>
<li>SPI_CLOCK_DIV16</li>
<li>SPI_CLOCK_DIV32</li>
<li>SPI_CLOCK_DIV64</li>
<li>SPI_CLOCK_DIV128 </li>
</ul>

<p>The default is SPI_CLOCK_DIV4, so try a larger divider.</p>

<hr>

<p>In the case of <a href="http://www.gammon.com.au/i2c" rel="nofollow">I2C</a> you can change the clock speed and the prescaler. The default frequency is 100 kHz, but you could make it slower.</p>

<pre><code>TWBR   prescaler   Frequency

  12       1       400   kHz  (the maximum supported frequency)
  32       1       200   kHz
  72       1       100   kHz  (the default)
 152       1        50   kHz
  78       4        25   kHz
 158       4        12.5 kHz
</code></pre>

<p>For example, to run at half the frequency (50 kHz) use:</p>

<pre><code>  Wire.begin ();
  TWBR = 152;  
</code></pre>

<p>To run at 25 kHz you also need to change the prescaler, eg.</p>

<pre><code>  Wire.begin ();
  TWBR = 78;  
  TWSR |= bit (TWPS0);
</code></pre>

<p>In the case of I2C make sure you have pull-up resistors on SDA and SCL in order to get a clean signal. 4.7 k is a reasonable value to try (for both of them) with the other ends connected to +5 V.</p>
