Odroid XU4 i2c fan issues

Hello :slight_smile:

I am trying to get my fan to work on my Odroid XU4, I’m using the 2.13.6-rev1 and the resin/odroid-xu4-ubuntu-buildpack-deps:latest base image and when I run i2cset -y 1 0x60 0x05 0x00 I get the error Error: Could not open file /dev/i2c-1' or /dev/i2c/1': No such file or directory. This command works on the Hardkernel provided ubuntu image after this install proceses https://wiki.odroid.com/accessory/add-on_boards/xu4_cloudshell2/easy_install. Any tips or pointers would be greatly appreciated!

I’m also having a hard time getting my LCDs (320x240 TFT LCD using SPI) to work, but that is a whole other issue. The fan is much more pressing because we are having thermal issues.

Thanks in advance!!!

We tried using the odroid-xu4-node base image because it includes udev (we thought that may have been the cause) but got the same error. We are ready to deploy around 20 devices but are unable to until this fan (thermal problems) issue is solved.

@pcarranzav

Hey @Jacob would you mind sharing your Dockerfile with us so we can take a closer look?

Thanks for getting back to me :slight_smile: @_Page

FROM resin/odroid-xu4-node

RUN apt-get update && apt-get install -yq \
    ntfs-3g parted && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

# Defines our working directory in container
WORKDIR /usr/src/app

# Copies the package.json first for better cache on later pushes
COPY package.json package.json

# This install npm dependencies on the resin.io build server,
# making sure to clean up the artifacts it creates in order to reduce the image size.
RUN JOBS=MAX npm install --production --unsafe-perm && npm cache clean --force && rm -rf /tmp/*

# This will copy all files in our root to the working  directory in the container
COPY . ./

RUN chmod 700 ./formatdrives.sh

# Enable systemd init system in container
ENV INITSYSTEM on

# server.js will run when container starts up on the device
CMD ["npm", "start"]

@Jacob I’ve been able to reproduce that i2c-1 does not exist on either the host os or in the container although i2c-2 and i2c-4 do exist. I’ve forwarded this onto our device team to look deeper into it

@_Page Thanks for your quick response!

Any estimate on when the device team will be looking at it?

Thanks!

Hi Jacob.
I had a quick look at this and from what I saw so far, the fan is controlled automatically through the pwm. And the current mode is auto.
In my case, I observed the fan starting every once in a while when the SoC gets too hot, in accordance to the auto mode it is set on.
In your case the fan never starts up?

Thanks for getting back so quick :slight_smile: @floion

We are using two fans, the on chip fan and another chassis fan over i2c. We have two hard drives running over USB 3 connected to the XU4 and during high read/write periods temperatures rise in our enclosure so we had to add an additional fan. The fan works on the Hardkernel provided Ubuntu for XU4.

Turn on the chassis fan: i2cset -y 1 0x60 0x05 0x00
Turn off the chassis fan: i2cset -y 1 0x60 0x05 0x05
When I run these commands on my resin/odroid-xu4-node deployment I get the error:
Error: Could not open file '/dev/i2c-1' or '/dev/i2c/1': No such file or directory

Thanks for your help!

@floion @_Page
We aren’t able to ship any devices until after this issue is resolved.

Any ideas regarding my previous post?

Thanks in advance!

Hi. Can you try with this .dtb and let us know if the fan is working?

https://misc1.dev.resin.io/~floion/odroid_xu4/exynos5422-odroidxu4.dtb

You would just need to download it, mount the SD card on your computer, replace the one from your SD card’s first partition, unmount it and then boot your XU4.

Yes this worked!

Thank you for all your help @floion !

Is this production ready? We’d like to understand what you did so we can fix this sort of issue in the future. Where can we read about the fix?

We will look into getting the lcd working now, it uses SPI. Do you forsee any issues with this?

Thanks again :slight_smile:

This will be available in the next 2.14.3+rev1 release

The changes about I2C are these: https://github.com/resin-os/resin-odroid/pull/85/commits/373e8dad07d210c5152e30008d0956b679143191

For the LCD, I’d expect to be something similar, something to enable to make it work

@floion Looks good, I will take a look at it :slight_smile:
Also, just saw issue #77 “Odroid XU4 does not boot from eMMC”, adding eMMC support would be a HUGE advantage to us! We have had a high failure rate with SD cards in the past and would really like to move towards eMMC.

Any idea when this will be added?

Thanks!

Not sure when we’ll start looking at this. Currently it’s not in the top of our prio list, but it’s there

I’m working through the Yocto docs right now and they are tough to follow. Are there any another resources out there that you use? I can’t find any docs related to this in your pull request.

&i2c_1 {
status = "okay";
};

If we can get the SPI enabled and the LCD working I think we will probably be able help you knock some of those issues out.

Thanks

If you are interested in yocto documentation, there is the yocto manual available online: https://www.yoctoproject.org/docs/2.5/ref-manual/ref-manual.html

@floion we are ready to start installing these devices but would like 2.14.3+rev1 to be released and available via the dashboard before we start installing. How soon will you guy’s be ready to release 2.14.3+rev1?

Hi. We will release this in the following days

@floion Awesome! Also, is there anyway I could get you to look at getting the LCD working? It runs over SPI. We have a demo for my boss on Tuesday and having a splash screen on the device would be flashy and right up his alley. The more excited he is about this the more devices he’s gonna wanna deploy.

Thanks in advance!

@floion Did you get my most recent message? Also, can I get a more concrete date on when 2.14.3+rev1 will be released?