Odroid-C4 notes

Did an Odroid-C4 with latest Yoe master, and it boots:

Has output on HDMI port.

The last product we released on this board was the Yoe 2021.1 release:

  • u-boot: 2015.01…
  • kernel: 4.9.241

The Yoe 2023.1 release contains:

  • u-boot: 2015.01
  • kernel: 4.9.312

So not a lot changed in low-level components.

1 Like

systemd[1]: Warning! Reported kernel version 4.9.312-odroid is older than systemd's required baseline kernel version 4.15. Your mileage may vary.

https://forum.odroid.com/viewtopic.php?t=44957

yeah we may upgrade to 5.18 can be tried. Last I remeber the TFT LCD drivers wont work with any other other kernel besides 4.9 so that might be a problem.

serial connection information

https://ridderbusch.name/post/2016-06-10-serial-for-odroid/

latest yoe/siot running on odroid-c4:

1 Like

Datasheets for C4

yoe-kiosk-browser/SIOT running on Odroid-C4:

nice work @khem!

The touchscreen calibration is off – was that working for you?

I have seen the same issue w.r.t. OSK placement. I think the keyboard layout is inverted when compared to touch points. I thought it was something in the rotation but did not seem to effect much. in /etc/defaults/yoe-kiosk-browser-env

it appears to me the touch screen calibration is swapped left to right – so wonder if it is just a simple TS calibration issue – common with resistive touch screens.

Systemd service for yoe-kiosk-browser:

root@odroid-c4-hardkernel:~# more /lib/systemd/system/yoe-kiosk-browser.service 
[Unit]
Description=Yoe Kiosk Browser
After=network.target

[Service]
Environment=LANG=en_US.UTF-8
Environment=QT_QPA_PLATFORM=linuxfb:fb=/dev/fb4
Environment=QT_QPA_GENERIC_PLUGINS=evdevtouch,evdevmouse,evdevkeyboard
Environment=QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
Environment=QTWEBENGINE_DISABLE_SANDBOX=1
Environment=QT_QPA_EGLFS_NO_LIBINPUT=1
Environment=QT_QPA_FB_NO_LIBINPUT=1
Environment=QT_LOGGING_RULES=qt.qpa.input=true
Environment=QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/touchscreen0

EnvironmentFile=/etc/default/yoe-kiosk-browser
ExecStart=/usr/bin/yoe-kiosk-browser
#Restart=on-failure

[Install]
WantedBy=multi-user.target

From this discussion:

Looking at QT’s source (qevdevtouchhandler.cpp) the calibration values (min, max, pressure…) are obtained directly from the device ioctl.

And this discussion, they went with tslib.

I wonder if we need tslib …

we could try using tslib I guess add tslib-calibrate tslib-conf to image and add
PACKAGECONFIG_GRAPHICS:append:pn-qtbase = " tslib" in conf/projects/odroid-c4/config.conf

With the following changes and the latest version of Yoe, I was able to calibrate and the touchscreen in the yoe-kiosk-browser to log into the SimpleIoT. However, click drag current selects text instead of scrolling the UI. We’ll need to get that sorted before it is generally usable.

[Service]
Environment=LANG=en_US.UTF-8
Environment=QT_QPA_PLATFORM=linuxfb:fb=/dev/fb4
#Environment=QT_QPA_GENERIC_PLUGINS=evdevtouch,evdevmouse,evdevkeyboard
#Environment=QT_QPA_EVDEV_KEYBOARD_PARAMETERS=grab=1
Environment=QTWEBENGINE_DISABLE_SANDBOX=1
Environment=QT_QPA_EGLFS_NO_LIBINPUT=1
Environment=QT_QPA_FB_NO_LIBINPUT=1
Environment=QT_LOGGING_RULES=qt.qpa.input=true
Environment=QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/touchscreen0

# added for TSLIB
Environment=QT_QPA_FB_TSLIB=1
Environment=QT_QPA_GENERIC_PLUGINS=tslib
Environment=TSLIB_PLUGINDIR=/lib/ts
Environment=TSLIB_CONFFILE=/etc/ts.conf
Environment=TSLIB_TSDEVICE=/dev/input/touchscreen0

Posted a question to the Qt forums about the touchscreen drag issue:

Running 2024.01:

root@odroid-c4-hardkernel:~# more /etc/os-release 
ID=yoe
NAME="Yoe Linux"
VERSION="2024.01 (Katahdin)"
VERSION_ID=0.3.3
VERSION_CODENAME="Katahdin"
PRETTY_NAME="Yoe Linux 2024.01 (Katahdin)"
CPE_NAME="cpe:/o:openembedded:yoe:0.3.3"
HOME_URL="https://github.com/YoeDistro"
SUPPORT_URL="https://github.com/YoeDistro/yoe-distro/issues"
BUG_REPORT_URL="https://github.com/YoeDistro/yoe-distro/issues"

I love the Yoe updater workflow for development – build a new release, scp the *.upd file to /data on the device and reboot – simple!

1 Like