This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Newbie needs help with Waveshare HDMI LCD screen+TB
#1
Hi everyone!
I'm a total newbie when it comes to Linux-based systems, Tinker Boards and the likes... but I decided to start a project that requires me to connect my Tinker Board to a 4 inch screen. 
So I bought the Waveshare 4inch HDMI LCD screen - but unfortunately I can't get it to work!
All I get is a black screen.. sometimes a blue one that fades slowly to black.

I never got to see any text showing or anything at all on the LCD screen except when I connected my Google Chromecast to it - and even then the picture was not clear at.

So I'm thinking this is probably an overscan or resolution issue. I managed to change my Tinkerboard resolution to match the one required by the LCD screen (800x480).

I've spent a few days trying to get this thing to work, read all tutorials and posts on several forums, and I've ran out of ideas. Most tutorials are for the Raspberry Pi and they refer files that I can't seem to find (like the config.txt). There are some overlays and drivers and stuff out there for the Pi but I can't find the equivalent locations on the Tinker Board.

Does anyone know what may be causing this?
Can someone please help me out?  Sad

Thank you!
Reply
#2
(05-14-2018, 02:21 AM)vila4480 Wrote: Hi everyone!
I'm a total newbie when it comes to Linux-based systems, Tinker Boards and the likes... but I decided to start a project that requires me to connect my Tinker Board to a 4 inch screen. 
So I bought the Waveshare 4inch HDMI LCD screen - but unfortunately I can't get it to work!
All I get is a black screen.. sometimes a blue one that fades slowly to black.

I never got to see any text showing or anything at all on the LCD screen except when I connected my Google Chromecast to it - and even then the picture was not clear at.

So I'm thinking this is probably an overscan or resolution issue. I managed to change my Tinkerboard resolution to match the one required by the LCD screen (800x480).

I've spent a few days trying to get this thing to work, read all tutorials and posts on several forums, and I've ran out of ideas. Most tutorials are for the Raspberry Pi and they refer files that I can't seem to find (like the config.txt). There are some overlays and drivers and stuff out there for the Pi but I can't find the equivalent locations on the Tinker Board.

Does anyone know what may be causing this?
Can someone please help me out?  Sad

Thank you!

Hi, you can take a try with this.
https://tinkerboarding.co.uk/wiki/index.php?title=3.5/4_inch_HDMI_LCD
Reply
#3
(05-14-2018, 09:38 AM)Tinker Board Wrote: Hi, you can take a try with this.
https://tinkerboarding.co.uk/wiki/index.php?title=3.5/4_inch_HDMI_LCD

Thank you for your reply!
I did try to follow that tutorial closely as it seems like it fits the screen I've got.
However being a newbie, some steps are very unclear to me!

1:
Code:
# Add the dts overlay for Ads7846 touch IC
$ cp ads7846-tinker-overlay.dts {codebase}/kernel/arch/arm/boot/dts/overlays
$ cp Makefile {codebase}/kernel/arch/arm/boot/dts/overlays

I wasn't sure what {codebase} referred to... but I couldn't find any folders for kernel or arch or arm at all! So I put my files into the base folder /boot/dts/overlays. Did I do that right? Tongue

2:
Then comes this part:
Code:
Then add the line into the end of miniarm-rk3288_defconfig:
# The file in {codebase}/kernel/arch/arm/configs/miniarm-rk3288_defconfig
$ CONFIG_TOUCHSCREEN_ADS7846=y

The only miniarm file I could find was named "miniarm-rk3288" which I believe was a .dtb (or dts?) file which is uneditable. I found a way to convert it to dts.. the instructions made very little sense to me at that point and after making some changes I was unable to convert back to .dtb due to various errors related to the code structure (I only added the one line at the bottom of the last section... didn't seem to fit well into it though!).

3:
Code:
 To modify kernel is done, please re-build your image and flash for next step.
Sorry I got no idea what it means to rebuild an image or flash... I searched everywhere for info on how to do that or what it meant...  Confused  i feel dumb..

4: 
From what I understood those previous changes only affect the touchscreen. However I was unable to get the screen to work at all. All I get is a blue screen that fades slowly to black.
Also, the following instruction refers to a file that does not exist in the attached files. The file I've got doesn't include "-tinker" in its filename:
Code:
After reboot your device, modify /boot/hw_intf.conf to load the dts overlay we just added:
intf:dtoverlay=ads7846-tinker
Other than that I believe that I have done every other step correctly.

Sorry for taking your time but I really can't figure this one out by myself and I have no clue as to what I'm doing wrong...!!
If I manage to figure this one out I'll post a video on youtube for others who might be facing the same issue I am.
I'm using the latest version of TinkerOS.

Thank you,
-ViLa4480
Reply
#4
(05-15-2018, 12:18 PM)vila4480 Wrote: 1:
Code:
# Add the dts overlay for Ads7846 touch IC
$ cp ads7846-tinker-overlay.dts {codebase}/kernel/arch/arm/boot/dts/overlays
$ cp Makefile {codebase}/kernel/arch/arm/boot/dts/overlays

I wasn't sure what {codebase} referred to... but I couldn't find any folders for kernel or arch or arm at all! So I put my files into the base folder /boot/dts/overlays. Did I do that right? Tongue

This {codebase} mean the kernel source code.
And you can find our source code here, https://github.com/TinkerBoard/debian_kernel

(05-15-2018, 12:18 PM)vila4480 Wrote: 2:
Then comes this part:
Code:
Then add the line into the end of miniarm-rk3288_defconfig:
# The file in {codebase}/kernel/arch/arm/configs/miniarm-rk3288_defconfig
$ CONFIG_TOUCHSCREEN_ADS7846=y

The only miniarm file I could find was named "miniarm-rk3288" which I believe was a .dtb (or dts?) file which is uneditable. I found a way to convert it to dts.. the instructions made very little sense to me at that point and after making some changes I was unable to convert back to .dtb due to various errors related to the code structure (I only added the one line at the bottom of the last section... didn't seem to fit well into it though!).

As the item 1, that is one of file in the kernel source code.
https://github.com/TinkerBoard/debian_kernel/blob/release/arch/arm/configs/miniarm-rk3288_defconfig

(05-15-2018, 12:18 PM)vila4480 Wrote: 3:
Code:
 To modify kernel is done, please re-build your image and flash for next step.
Sorry I got no idea what it means to rebuild an image or flash... I searched everywhere for info on how to do that or what it meant...  Confused  i feel dumb..

You can refer to this https://tinkerboarding.co.uk/wiki/index.php?title=Software#Kernel, to step by step re-build the kernel.
Then you can get new kernel with new config, and have the ads7846-tinker.dtb file.

Please take a try, and let us know if any the problem.

Thanks.
Reply
#5
Hi, vila4480
    We have committed the change to the github, so you can use the following step instead of step a.
    step 1 :
    https://tinkerboarding.co.uk/wiki/index.php?title=Software#Kernel
    And after Get source code: before Building image:, please apply the following patch
  https://github.com/TinkerBoard/debian_kernel/commit/58dc6ada2b7991c7ca5f7bcceb839ee5bb123212

  step 2
  After finish the above SOP, just follow the step b of the below SOP to finish the setup
  https://tinkerboarding.co.uk/wiki/index.php?title=3.5/4_inch_HDMI_LCD
Reply
#6
Wow amazing support thank you.
I'll try to follow your tips and I'll come back to share the results!

Thanks guys!
Reply
#7
(05-16-2018, 03:28 AM)jamess Wrote: .

Sorry for the delay, I was unfortunately not able to pick this up since my last reply.
So I tried following all the steps but I was not successful - I am pretty sure however that this is due to my lack of knowledge when it comes to the operating system quirks as I'm not used to it. I decided to do it all over again and share my progress in the hope that someone might be able to lend me a helping hand!

Ok so the first thing I did was getting root status and then I tried doing this first part:
Code:
Kernel
Install the related packages:
$ sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf gcc-arm-linux-gnueabi device-tree-compiler gcc-aarch64-linux-gnu mtools parted libssl-dev

I got this response:
Code:
root@tinkerboard:/usr/src# sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf gcc-arm-linux-gnueabi device-tree-compiler gcc-aarch64-linux-gnu mtools parted libssl-dev
Reading package lists... Done
Building dependency tree      
Reading state information... Done
[i]Package gcc-aarch64-linux-gnu is not available, but is referred to by another package.[/i]
[i]This may mean that the package is missing, has been obsoleted, or[/i]
[i]is only available from another source[/i]

[i]Package gcc-arm-linux-gnueabi is not available, but is referred to by another package.[/i]
[i]This may mean that the package is missing, has been obsoleted, or[/i]
[i]is only available from another source[/i]

[i]Package gcc-arm-linux-gnueabihf is not available, but is referred to by another package.[/i]
[i]This may mean that the package is missing, has been obsoleted, or[/i]
[i]is only available from another source[/i]

[i]E: Package 'gcc-arm-linux-gnueabihf' has no installation candidate[/i]
[i]E: Package 'gcc-arm-linux-gnueabi' has no installation candidate[/i]
[i]E: Package 'gcc-aarch64-linux-gnu' has no installation candidate[/i]

Does this mean that the referral to these packages are outdated?

Then I did the next command:
Code:
Get source code: $ git clone https://github.com/TinkerBoard/debian_kernel.git -b release
...Which seemed to be successful.

Then I was a bit confused on how to apply the patch you mentioned... is there a command for that? I literally downloaded and copy/pasted the files and folders into the debian_kernel folder and replaced any files there. No incidents apparently.. but was that the correct way of doing it?

(I'll give further details on the following steps after this post)
Reply
#8
(06-11-2018, 11:22 PM)vila4480 Wrote: .

(...)
Every step since my last post seems to be going just fine until I get to this part (4th command on the building the image section):

Code:
root@tinkerboard:/home/linaro/debian_kernel# make zImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
scripts/kconfig/conf  --silentoldconfig Kconfig
 CHK     include/config/kernel.release
 CHK     include/generated/uapi/linux/version.h
 UPD     include/generated/uapi/linux/version.h
 HOSTCC  scripts/extract-cert
 CC      scripts/mod/empty.o
 CC      scripts/mod/devicetable-offsets.s
 UPD     include/config/kernel.release
 CHK     include/generated/utsrelease.h
 UPD     include/generated/utsrelease.h
 MKELF   scripts/mod/elfconfig.h
 CHK     scripts/mod/devicetable-offsets.h
 UPD     scripts/mod/devicetable-offsets.h
make[1]: 'include/generated/mach-types.h' is up to date.
 HOSTCC  scripts/mod/modpost.o
 HOSTCC  scripts/mod/sumversion.o
 HOSTCC  scripts/mod/file2alias.o
scripts/extract-cert.c:21:25:[b] fatal error[/b]: openssl/bio.h: No such file or directory
#include <openssl/bio.h>
                        ^
compilation terminated.
scripts/Makefile.host:91: recipe for target 'scripts/extract-cert' failed
make[1]: *** [scripts/extract-cert] Error 1
make[1]: *** Waiting for unfinished jobs....
 CHK     include/generated/timeconst.h
 CC      kernel/bounds.s
 CHK     include/generated/bounds.h
 UPD     include/generated/bounds.h
 CC      arch/arm/kernel/asm-offsets.s
 HOSTLD  scripts/mod/modpost
Makefile:573: recipe for target 'scripts' failed
make: *** [scripts] Error 2
make: *** Waiting for unfinished jobs....
 CHK     include/generated/asm-offsets.h
 UPD     include/generated/asm-offsets.h
 CALL    scripts/checksyscalls.sh
root@tinkerboard:/home/linaro/debian_kernel#

Doing the next couple of instructions outputs the same error message.

(to be continued...)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)