I have seen this on Galileo but not yet on Edison. We'll look into it.
btw: which versions of libmraa / upm do you use?
I am using the latest flash (ww36-14) and:
libmraa-dev - 0.4.4c-r0
upm-dev - 0.1.7-r0
those versions are dated.
Could you pls do an update?
you'd need to put a *.conf file in /etc/opkg folder, like:
cat > /etc/opkg/mraa-upm.conf << EOF
src mraa-upm http://iotdk.intel.com/repos/1.1/intelgalactic
mraa should be around 0.5.5 I think and upm about 0.1.8
I've updated the libs but it got worse
Now I get nothing on the display at all - not even intermittently.
Things I have done so far:
+ tested LCD + i2c backpack (LCM1602) on an Arduino Due to make sure it is working (yes, it is);
+ ran an i2c scanner while on a Arduino Due: it shows an i2c address 0x27;
+ ran an i2cdetect on the Edison: shows nothing connected (I am using pins A4 and A5);
+ every lcd call (for instance lcd->setCursor(0,0);) returns error 5 (MRAA_ERROR_INVALID_HANDLE);
Any suggestions on how to debug this more ?
How can I test the i2c bus on the Edison to verify they are working ?
can you try on "SDA, SCL" pins?
Is it possible that my I2C bus is / got burnt somehow ? How would can I test this ?
In order to try and test the I2C bus I connected A4 and A5 of the Edison into ports A0 and A1 of an Arduino Mega.
It constantly read values between 927 and 931 for both ports.
However, when I issue the command
i2cdetect -r 6
values quickly change to 910-914.
Does this mean that the i2c bus is working ?
could you pls check "SDA/SCL" whether it makes any difference?
Nothing happens when I connect to these two pins - values read from them almost don't change (as opposed to the other pins A4/A5).
Thanks again for trying to help mhahn
could you pls check your Edison fw version?
should be on 68. If not, you would most likely need to update the firmware.
We just checked on a v60 and i2c wouldn't work on it.
Yep, version 68.
Running out of ideas here...
1 of 1 people found this helpful
Hi all, here is an update for those having similar problems.
As per this post here (Fried the I2C on my Arduino Breakout Board) I apparently fried the I2C port of my Edison when I tried using an external power supply.
Regarding the intermittent LCD problem, I managed to solve it by modifying Intel's UPM library file called 'lcm1602.cxx' located at:
In this file, search for the method called
mraa_result_t Lcm1602::pulseEnable(uint8_t value)
and increase the usleep values from 1 and 50 to 150 (both of them).
For the reference, I am using an LCM1602 16x2 display. I am not sure if this will work for other displays or any other particular configuration somebody might have.
With this modification, writing messages to the LCD are noticeable slower - but at least it works.
interesting - thanks for the update.