Jump to content

OrangePi PC+ and 7inch HDMI LCD (C) from Waveshare


Wojtek Przybycień

Recommended Posts

Hi all,

I have the Orange Pi PC+ with installed latest armbian. system installed on eMMC.

When I connect the LCD 7" ( http://www.waveshare.com/wiki/7inch_HDMI_LCD_(C) ) via hdmi to Orange Pi PC+ I only have a white screen. I do not know where I could change the settings in Armbian so that I can see the normal image on this display just like on a computer monitor. For RPi3 I knew what to do and where because it is described on wiki page for this display.  Unfortunately I do not know linux well.

Link to comment
Share on other sites

Hello, I've tried anything but finally found a solution in this topic.

 

1. find your device at /boot/bin directory

2. install Sunxi-tools http://linux-sunxi.org/Sunxi-tools

3. convert binary configuration to fex format (bin2fex /boot/bin/yourdevice.bin /boot/bin/yourdevice.fex)

4. change display resolution in following sections:

[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 3
screen0_output_mode = 5
screen1_output_type = 3
screen1_output_mode = 5
fb0_width = 800
fb0_height = 480
fb1_width = 800
fb1_height = 480
 
[hdmi_para]
hdmi_used = 1
hdmi_x = 800
hdmi_y = 480
hdmi_power = "vcc-hdmi-18"
hdmi_cts_compatibility = 1

5. convert fex to binary format to apply the changes (fex2bin /boot/bin/yourdevice.fex /boot/bin/yourdevice.bin)

 

Boot&Enjoy!

Link to comment
Share on other sites

On 9/6/2017 at 10:57 PM, tiptop said:

Hello, I've tried anything but finally found a solution in this topic.

 

1. find your device at /boot/bin directory

2. install Sunxi-tools http://linux-sunxi.org/Sunxi-tools

3. convert binary configuration to fex format (bin2fex /boot/bin/yourdevice.bin /boot/bin/yourdevice.fex)

4. change display resolution in following sections:


[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 3
screen0_output_mode = 5
screen1_output_type = 3
screen1_output_mode = 5
fb0_width = 800
fb0_height = 480
fb1_width = 800
fb1_height = 480
 
[hdmi_para]
hdmi_used = 1
hdmi_x = 800
hdmi_y = 480
hdmi_power = "vcc-hdmi-18"
hdmi_cts_compatibility = 1

5. convert fex to binary format to apply the changes (fex2bin /boot/bin/yourdevice.fex /boot/bin/yourdevice.bin)

 

Boot&Enjoy!

 

Hello,

 

Sorry for my bad English.

 

I have Orange Pi PC+ and Waveshare 7" Touch Screen (C) like Wojtek.

 

I run latest ARMBIAN 5.30 stable Ubuntu 16.04.2 LTS 3.4.113-sun8i

 

When I use screen with RPi 3 (latest Raspbian), it fit. But when I connect screen to OPi PC+ I get only display (with tiptop's solution 1024*600).

 

I was research how to enable touch and I found lsusb command. When I use lsusb command I got this :

 

root@orangepipcplus/:# lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 0eef:0005 D-WAV Scientific Co., Ltd
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

I cant find this Bus 006 Device 002: ID 0eef:0005 D-WAV Scientific Co., Ltd Vendor ID and Device ID in hid-multitouch (or etc. didnt remember) files.

 

And evtest command :

 

root@orangepipcplus:/# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      vmouse
/dev/input/event1:      sunxi-gpiokey
/dev/input/event2:      sunxi-ths
/dev/input/event3:      WaveShare WaveShare Touchscreen
Select the device event number [0-3]: 3
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xeef product 0x5 version 0x111
Input device name: "WaveShare WaveShare Touchscreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max     1024
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max      600
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max      255
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max        9
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max     1024
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max      600
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
    Event code 58 (ABS_MT_PRESSURE)
      Value      0
      Min        0
      Max      255
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
 

Doesnt give any output when I touch screen.

 

I can only see output with

 

root@orangepipcplus:/# xxd -c 25 /dev/hidraw0
00000000: 0101 0005 7401 7501 71f5 0101 0100 0674 0175 017f f501 0101 00  ....t.u.q......t.u.......
00000019: 0576 0175 018d f501 0101 0005 7901 7501 9bf5 0101 0100 057e 01  .v.u........y.u........~.
00000032: 7601 a8f5 0101 0100 0581 0176 01b6 f501 0101 0005 8301 7601 c4  v..........v..........v..
0000004b: f501 0101 0005 8501 7601 d2f5 0101 0100 0688 0176 01e0 f501 01  ........v..........v.....
00000064: 0100 068c 0176 01ee f501 0101 0006 9101 7601 fcf5 0101 0100 05  .....v..........v........
0000007d: 9601 7701 09f6 0101 0100 059e 0178 0117 f601 0101 0006 a601 79  ..w..........x..........y
00000096: 0125 f601 0101 0005 af01 7901 33f6 0101 0100 05b7 017a 0141 f6  .%........y.3........z.A.
000000af: 0101 0100 03c0 017b 014e f601 0101 0003 c901 7d01 5cf6 0101 01  .......{.N........}.\....
000000c8: 0003 d201 7d01 6af6 0101 0100 03da 017e 0177 f601 0101 0005 e4  ....}.j........~.w.......
000000e1: 0181 0185 f601 0101 0005 eb01 8301 93f6 0101 0100 01ef 0185 01  .........................

 

Also in this topic shahidali55's solution doesnt work for me.

I really did a lot of thing but I didnt get any solution.

 

Can anyone know how to enable touch for Waveshare 7" Touch Screen (C) ?

 

Edited by hichkas
add firmware
Link to comment
Share on other sites

I'm having the same issue as you.

 

with dmesg i get the following output:

  8.031945] hid-multitouch 0003:0EEF:0005.0001: input,hidraw0: USB HID v1.11 Device [WaveShare WaveShare Touchscreen] on usb-sunxi-ohci-1/input0

 

and I can see touch-inputs when using: xxd -c 11 /dev/hidraw0:

 

00000000: 0101 0003 2900 fb00 aa33 01

                                     ------ -----  -----

                                       x       y        |    

                                                        some kind of counter, increases when i hold/touch the screen

 

each byte-double is increasing its position like this: ff02 -> 0003

 

some things i found out:

 

0101 0003 2900 fb00 aa33 01  ....)....3.

touch-start/hold

 

0100 0003 2900 fb00 aa33 01  ....)....3.

touch-end

 

00021722: 0101 0001 6701 9001 bbf3 05  ....g......
0002172d: 0101 0101 d001 1f01 bbf3 00  ...........
00021738: 0101 0203 5c02 1501 bbf3 00  ....\......
00021743: 0101 0301 ce02 0002 bbf3 00  ...........
0002174e: 0101 0401 cb02 8701 bbf3 00  ...........

multi-touch with 5 fingers

 

00021722: 0101 0001 6701 9001 bbf3 05  ....g......
0002172d: 0101 0101 d001 1f01 bbf3 00  ...........
00021738: 0101 0203 5c02 1501 bbf3 00  ....\......
00021743: 0101 0301 ce02 0002 bbf3 00  ...........
0002174e: 0101 0401 cb02 8701 bbf3 00  ...........

counts how many fingers are currently on the touch

 

Report descriptor of the touch:

printit@printit-v2:/sys/bus/usb/drivers/usbhid$ sudo lsusb -vd 0eef:0005

Bus 007 Device 002: ID 0eef:0005 D-WAV Scientific Co., Ltd
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0eef D-WAV Scientific Co., Ltd
  idProduct          0x0005
  bcdDevice            2.00
  iManufacturer           1 WaveShare
  iProduct                2 WaveShare Touchscreen
  iSerial                 3 2016-11-06
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            9 German
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     124
          Report Descriptor: (length is 124)
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x04 ] 4
                            Touch Screen
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x01 ] 1
            Item(Local ): Usage, data= [ 0x22 ] 34
                            Finger
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Local ): Usage, data= [ 0x42 ] 66
                            Tip Switch
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x07 ] 7
            Item(Main  ): Input, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Local ): Usage, data= [ 0x51 ] 81
                            Contact ID
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Tip Pressure
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Global): Unit Exponent, data= [ 0x0f ] 15
                            Unit Exponent: 15
            Item(Global): Unit, data= [ 0x11 ] 17
                            System: SI Linear, Unit: Centimeter
            Item(Global): Logical Maximum, data= [ 0x00 0x04 ] 1024
            Item(Global): Physical Minimum, data= [ 0x00 ] 0
            Item(Global): Physical Maximum, data= [ 0xff 0xff ] 65535
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Physical Maximum, data= [ 0xff 0xff ] 65535
            Item(Global): Logical Maximum, data= [ 0x58 0x02 ] 600
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Global): Unit Exponent, data= [ 0x0c ] 12
                            Unit Exponent: 12
            Item(Global): Unit, data= [ 0x01 0x10 ] 4097
                            System: SI Linear, Unit: Seconds
            Item(Global): Physical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535
            Item(Global): Logical Maximum, data= [ 0xff 0xff 0x00 0x00 ] 65535
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Local ): Usage, data= [ 0x56 ] 86
                            (null)
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x0d ] 13
                            Digitizer
            Item(Local ): Usage, data= [ 0x54 ] 84
                            Contact Count
            Item(Global): Logical Maximum, data= [ 0x7f ] 127
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x02 ] 2
            Item(Local ): Usage, data= [ 0x55 ] 85
                            Maximum Contact Number
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Logical Maximum, data= [ 0x02 ] 2
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

 

 

 

touch doesn't work in normal use.

 

I'm a noob when it comes to drivers, does someone know which files I need to modify to get it working or should I emulate mouseclicks reading the outputs from: xxd -c 11 /dev/hidraw0 ?

Edited by aurror
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines