I just want to clarify to make sure I’m understanding your issue correctly. After using the i2cdetect command on the different I2C buses, you’re only seeing the device being detected on bus 0, but the address is not the correct one and besides that, you see no devices on buses 1, 2 and 3, is this correct?
There are 3 available I2C buses on the Intel Joule Expansion Board. These buses are numbered 0, 1, 2 and are available on the pins: 11, 13, 15, 17, 19, 21.
You also mention: “i tired it with up-board”. Could you please explain this in more detail?
What other connections are done on the PCA9685 besides the I2C pins, is it properly powered?
What is the output of cat /etc/*-release?
We’ll be waiting for your response.
1-on bus 0 , there is the above two addresses , they always appear , so the address dose not appear from the first place ,
2- i connected it to pins 11,13 , and tried on 15,17 and on 19,21 but no address appears
3- i had up-baord CLICK HERE and when i run did the same configurations i was showing in I2CDETECT
4- for the PCA9685 the SCL connected to pin 13 , SDA to pin 11 , and power , so it connected properly , i even tried with IMU MPU6050 and no thins appears
5- the output is
ubuntu@ubuntu3:~$ cat /etc/*-release
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
VERSION="16.04.1 LTS (Xenial Xerus)"
PRETTY_NAME="Ubuntu 16.04.1 LTS"
Thank you for your reply. Since you’re using Ubuntu I’d suggest you to contact Ubuntu support. For any Ubuntu questions on Joule please refer to https://developer.ubuntu.com/en/snappy/start/intel-joule/ . This image is still in beta.
i came to try to install the core ubuntu ,
i have to flash this firmware : which is Joule-Firmware-2016-09-23-131_Public
but when i went to the bios , i see he following
IFWI Version : GTPP_C0_IFWI_X64_D_2016_10_04_121
BIOS Version : GTPP140A.X64.0143.D30.1610041907
so my question is the version have is newer then the previous on on the link so i can follow with it?
I looked at the link you shared and the requirements list a host computer with Windows 8, 8.1, or 10. Are you trying to install Joule-Firmware-2016-09-23-131_Public in a computer running Ubuntu? Currently, the latest version of the file you’re looking for is the one in the website you shared.
i will try to install it from windows,
when i try it i will update the post
tried to update it , and reinstall the ubuntu from the links above
still cant detect any i2c devicec
1 of 1 people found this helpful
Some sanity checks: it might not be the SW.
First: what voltage are you using on your I2C devices? My understanding is the dev kit carrier for the Joule only supports 3.3V I2C buses and GPIOs.
Second: the interfaces on the SoC on the Joule are natively 1.8V and so there is already a 1.8V to 3.3V converter in the path. You can see this most clearly in the first page (high level block diagram) of the schematic.
Third: if you are using a "Grove" module for your MPU, these modules include 5V-to-3.3V convertors. Grove modules generally (not always) use a 5V interface standard.
Fourth: The I2C bus depends on pull-up behavior, and you generally can't chain voltage convertors, especially ones that go up and then back down (this causes no end of problems...). In particular connecting a 1.8V-to-3.3V converter to a 3.3V-to-5V converter to a 5V-to-3.3V converters in a sequence (which is what happens if you try to drive a Grove MPU module from a Joule carrier) is almost guaranteed not to work. Unfortunately. (It might work for GPIOs and unidirectional converters, but is problematic for bidirectional converters and pull-up buses like I2C).
My suggestion is to use chips that can support a 3.3V bus natively and use breakouts (eg from Sparkfun) that don't include extraneous voltage level converters.
In addition, there can be a problem if the device you are talking to is on a board that includes pull-up resistors and these are too "strong" (that is, the resistance is too low) and source too much current, making it hard for the I2C master or devices to pull them "down". This can be fixed by removing any resistors from the breakout board holding the device you are talking to and replacing them with different ones. If the sensor breakout board uses tiny SMT resistors, you can just desolder them (or even just scrape them off with a knife) and use external, discrete resistors instead; or just depend on the pullups already supported by the Joule SoC and/or the voltage converter on the carrier.
The PCA9685 PWM board from Adafruit cited is a special case. I think the *chip* can run off a 3.3V interface (Vcc) but then you generally want the PWM output at 5V if you are driving servos. You can put the V+ at 5V but this is just the power supply for the servos, if Vcc is 3.3V then the PWM signals will be, too. This may or may not work with your servos...
If you write a loop to do the I2C probe and then hook up an oscilloscope to the output, what do you see? If nothing, it's a SW problem. If you are seeing I2C activity during probes but I2C devices on the bus aren't responding, it's a HW problem (eg voltage conversion issues, or pullup issues).
Finally, if you have ruled out HW as the problem... run "uname -r". If the kernel name reported does not include "joule" in the name then you don't have the right drivers installed (which will happen if you try to eg install a "normal" Ubuntu distribution; if you want Ubuntu, use the special version for the Joule distributed by Canonical).