Problem with I2C LC...
 
Notifications
Clear all

Problem with I2C LCD and Thanos AMC: Solved

1 Posts
1 Users
0 Reactions
29 Views
(@stuyo)
Active Member
Joined: 3 years ago
Posts: 8
Topic starter  

I had a strange issue with one of my Arduinos which has serial LCD attached to it. 

Configuration:

Have 4 Arduinos with different modules attached, all working well.

LCD is connected to Arduino is Pro Micro with address 0x27 and has additionaly as follows: 2 fans for windsim + TME display + 8button matrix + 3 stand alone push buttons. PCB is powered by external 5 + 12V, but all they come from my PC PSU so GND is common. Arduino is on powered USB hub together with 2 more Pro Micros + some other controllers.

Have motion based on Thanos AMC controller and 6 actuators. Two of those are connected on one mains power circuit, the 4 vertical ones - on another. Thanos AMC is connected to powered USB Hub (not same one), always connected to PC.

Issue:

All works well together without motion powered on. When I power the two actuator circuit (surge+TL) all works well. When I power the 4 vertical actuator circuit I get immediate I2C bus failure and the Arduino with the LCD module cannot connect any more at all to SimHub. Keep in mind the Thanos AMC is powered on and connected all the time.

Logs indicate I2C bus failing (don't have them with me, will try to update later). When LCD cable is disconnected from the Arduino the failure is gone, all works well together (sketch still the same - with LCD support). Tried powering the LCD both from Arduino or external 5V - still the same.

This is quite strange behavior, but I figured out most probably both mine and Thanos AMC LCDs use same I2C address and somehow they step on each other. Odd here is this happens only when I power the 4 vertical post actuators. EMI are not in play here, all my cables go through different routes, are isolated, have ferrites, do not cross, etc. Tried switching between powered USB hubs, USBs directly on motherboard, another LCD module - behavior is consistent.

Solution:

Change the LCD I2C address. I switched my LCD module I2C address to 0x26, re-flashed sketch with the new details and all started working great!

This is easily achieved by soldering the provided bridges on the LCDs piggyback I2C board. More on how to do it here: http://wiki.sunfounder.cc/index.php?title=I%C2%B2C_LCD1602

Random Thoughts:

I have been using multiple LCDs on multiple Arduino without issue, all of them defaulting to 0x27 address. Maybe it would be good idea to have all yours to different addresses if you use multiple.

I have been battling for years with this problem (had only 4 actuators at the time) and it was coming and going. Before the LCD was attached to Arduino Uno R3, switched to Nano with fake chip at a point, which required fake driver downgrade, but was working for most of the time and now recently again the issue came back. I upgraded to Arduino Pro Micro as I needed HID support. 

Leaving this info here so maybe it would be useful in future for people with similar issues. 

This topic was modified 1 day ago by Stuyo

   
Quote
Share: