Jump to content

kutysam

Members
  • Posts

    29
  • Joined

  • Last visited

Posts posted by kutysam

  1. 12 hours ago, martinayotte said:

    I'm still working on it, it is more difficult than expected, because it shares sunxi-common-regulators.dtsi between H3-H5 and A20 and others.

    My current version is enabling the PL2, but I can't make "/delete-node/" working to remove PB9, and the dmesg error still present.

    I also need to verify if USB0 is actually powered, but unfortunately my OTG adaptor is a Mini-USB not Micro-USB, I will need to sacrifice a Micro cable and solder a female connector on it...

     

     

    USB0 is actually powered on opi lite. i connected my webcam to an otg adapter and it works fine. (full resolution)

    Do let me know if there is any tests i can do to help out :)

  2. FAQ / Personal Experiences

    Q1) If you wish to do manual testing, without rebooting, we have to rmmod and then modprobe manually [Make sure you have already done all the steps till depmod

    sudo rmmod fbtft_device
    sudo rmmod fbtft
    sudo rmmod ads7846_device
    sudo rmmod ads7846
    
    
    sudo modprobe ads7846 
    sudo modprobe ads7846_device model=7846 cs=1 gpio_pendown=1 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900
    
    sudo modprobe fbtft
    sudo modprobe fbtft_device rotate=90 name=piscreen speed=16000000 gpios=reset:2,dc:71 txbuflen=32768 fps=25

     

    Q2) My mainline kernel suddenly doesn't show me that my device is touchable through evtest. I experienced this and i did the following

    Remove all on boot loading for ads7846 and fbtft

    sudo rm /etc/modules-load.d/ads7846.conf
    sudo rm /etc/modprobe.d/ads7846_device.conf
    sudo rm /etc/modprobe.d/fbtft.conf
    sudo rm /etc/modules-load.d/fbtft.conf

    After which, lets manually 'automatically' load them through rc.local

    nano /etc/rc.local
    modprobe ads7846 
    modprobe ads7846_device model=7846 cs=1 gpio_pendown=1 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900
    modprobe fbtft
    modprobe fbtft_device rotate=90 name=piscreen speed=16000000 gpios=reset:2,dc:71 txbuflen=32768 fps=25
    con2fbmap 1 0

    Take note that con2fbmap is either 1 0 or 1 1 for mainline (1 0 --> orange pi lite or devices without AVOUT, 1 1 --> for devices with AVOUT like orange pi zero)

    For advanced users, check /dev/ and see what is your fbX

     

    Q3) I have installed a GUI for my mainline kernel but touch stops at times.

    I experience this too and I have no idea on how to fix it.

     

    Q4) I need to calibrate it

    Yes, me too. However, my device isn't working very well. You need tslib and stuff to do the calibration.

  3. Mainline Kernel [You can use BOTH LCD and TOUCH]

    1) Enable overlays for spi and cs1

    sudo nano /boot/armbianEnv.txt
    add the following to the bottom
    
    overlays=spi-spidev spi-add-cs1 
    param_spidev_spi_bus=0 
    param_spidev_spi_cs=1

    2) Reboot your device

     

    LCD

    1) Load fbtft and fbtft_device on boot

    sudo nano /etc/modules-load.d/fbtft.conf 
    fbtft
    fbtft_device

    2) Load fbtft_device options

    nano /etc/modprobe.d/fbtft.conf 
    options fbtft_device rotate=90 name=piscreen speed=16000000 gpios=reset:2,dc:71 txbuflen=32768 fps=25

    3) Since there is no GUI in mainline, lets enable the console to be displayed to LCD instead

    sudo nano /etc/rc.local 
    con2fbmap 1 1

    For some others, you may wish to try con2fbmap 1 0 [If your device has no AVout]

     

    4) Reboot your device (sudo reboot) and you screen should be lit up

    ===========================================================================

    TOUCH

    1) Download ads7846 touch driver (compatible with xpt2046)

    mkdir ds7846 
    cd ds7846 
    wget https://sourceforge.net/p/openipmi/linux-ipmi/ci/master/tree/drivers/input/touchscreen/ads7846.c?format=raw
    mv ads7846.c?format=raw ads7846.c 

    2) Create a makefile (Take note that it is TABS instead of spaces before the $(MAKE))

    nano Makefile
    Insert the below in without the -----
    --------------------------------
    obj-m := ads7846.o 
    KDIR := /lib/modules/$(shell uname -r)/build 
    PWD := $(shell pwd) 
    all:
    	$(MAKE) -C $(KDIR) M=$(PWD) modules 
    clean:
    	$(MAKE) -C $(KDIR) M=$(PWD) clean 
    install:
    	$(MAKE) -C $(KDIR) M=$(PWD) modules_install
    --------------------------------

    3) Exit nano and run the following

    sudo make
    sudo make install
    sudo depmod

    4) Download and compile and install ads7846_device

    cd .. 
    git clone https://github.com/notro/fbtft_tools/
    cd fbtft_tools/ads7846_device 
    make 
    sudo make install 
    sudo depmod 

    5) Load ads7846 and ads7846_device on boot

    sudo nano /etc/modules-load.d/ads7846.conf 
    ads7846 
    ads7846_device

    6) Load ads7846_device options

    nano /etc/modprobe.d/ads7846_device.conf 
    options ads7846_device model=7846 cs=1 gpio_pendown=1 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900

     

  4. First of all, credits goes to https://4pda.ru/forum/lofiversion/index.php?t750921-2560.html

    Device that I used for this guide: https://www.aliexpress.com/item/3-5-Inch-TFT-LCD-Moudle-For-Raspberry-Pi-2-Model-B-RPI-B-raspberry-pi/32707058182.html

    Pinout: http://www.waveshare.com/3.5inch-rpi-lcd-a.htm (Yes, the device is a waveshare knockoff)

    How to place the device? For Orange pi lite/one it is reversed. For the rest, it should be normal.

    Refer to https://forum.armbian.com/index.php?/topic/724-quick-review-of-orange-pi-one/ for more info.

     

    There are two sections to this guide.

    Legacy / Mainline

    Legacy Kernel [You can only EITHER use touch or LCD due to issues with spi chip select]

    LCD

    1) Load fbtft and fbtft_device on boot

    sudo nano /etc/modules-load.d/fbtft.conf 
    fbtft
    fbtft_device

    2) Load fbtft_device options

    nano /etc/modprobe.d/fbtft.conf 
    options fbtft_device rotate=90 name=piscreen speed=16000000 gpios=reset:2,dc:71 txbuflen=32768 fps=25

    3) Make sure X11 loads to the correct framebuffer (fb8 for legacy)

    nano /etc/X11/xorg.conf.d/50-fbturbo.conf
    find fb0 and change to fb8

    4) Reboot your device (sudo reboot) and you screen should be lit up

    ============================================

    TOUCH

    1) Download ads7846 touch driver (compatible with xpt2046)

    mkdir ds7846 
    cd ds7846 
    wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-3.6.y/drivers/input/touchscreen/ads7846.c

    2) Create a makefile (Take note that it is TABS instead of spaces before the $(MAKE))

    nano Makefile
    Insert the below in without the -----
    --------------------------------
    obj-m := ads7846.o 
    KDIR := /lib/modules/$(shell uname -r)/build 
    PWD := $(shell pwd) 
    all:
    	$(MAKE) -C $(KDIR) M=$(PWD) modules 
    clean:
    	$(MAKE) -C $(KDIR) M=$(PWD) clean 
    install:
    	$(MAKE) -C $(KDIR) M=$(PWD) modules_install
    --------------------------------

    3) Exit nano and run the following

    sudo make
    sudo make install
    sudo depmod

    4) Download and compile and install ads7846_device

    cd .. 
    git clone https://github.com/notro/fbtft_tools/
    cd fbtft_tools/ads7846_device 
    make 
    sudo make install 
    sudo depmod 

    5) Load ads7846 and ads7846_device on boot

    sudo nano /etc/modules-load.d/ads7846.conf 
    ads7846 
    ads7846_device

    6) Load ads7846_device options

    nano /etc/modprobe.d/ads7846_device.conf 
    options ads7846_device model=7846 cs=0 gpio_pendown=1 keep_vref_on=1 swap_xy=1 pressure_max=255 x_plate_ohms=60 x_min=200 x_max=3900 y_min=200 y_max=3900

    7) Reboot your device and run evtest

    sudo reboot
    sudo evtest

    Find your touch device and happy touching. Every touch should generate an event.

  5. So I enabled overlays=usbhost0 in armbianEnv.txt

     

    it works after reboot.

    I connected my OTG converter and connected my bluetooth and managed to see the bluetooth device.

     

    However, after rebooting / powercycle, i notice 

    '[   23.700998] musb_bus_suspend 2584: trying to suspend as a_wait_bcon while active' appearing non-stop in dmesg

     

    How to get this message is as follows

    1) Switch off your device.

    2) Connect your OTG microusb to usb converter (You may / maynot plug in your usb device to it)
    3) Switch on your device.

    4) Run dmesg and it runs crazy.

     

    However, if you power on WITHOUT connecting your OTG converter, you will never get this error message.

    If you connect it once your device boots up, you still will NOT get this error message.

     

     

  6. I've already enabled audio-codec in the overlays section

    I've checked https://linux-sunxi.org/Linux_mainlining_effort#Status_Matrix and saw that audio-codec is supported for h3 since 4.10

    Required Information: Linux orangepizero 4.11.9-sun8i #3 SMP Sat Jul 15 00:20:53 CEST 2017 armv7l armv7l armv7l GNU/Linux

     

    -->arecord -l shows this

    pi@orangepizero:~$ arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 0: Codec [H3 Audio Codec], device 0: CDC PCM Codec-0 []
      Subdevices: 1/1
      Subdevice #0: subdevice #0
     

    --> running the following command will just hang all the way till ctrl+c is entered

    pi@orangepizero:~$ arecord -d 5 /tmp/test-mic.wav
    Recording WAVE '/tmp/test-mic.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono

     

    --> This will ask me to put in some formats

    pi@orangepizero:~$ arecord -D hw:0,0 -d 10 /tmp/test-mic.wav
    Recording WAVE '/tmp/test-mic.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono
    arecord: set_params:1233: Sample format non available
    Available formats:
    - S16_LE
    - S32_LE
     

    --> The following will result in an error

    pi@orangepizero:~$ arecord -f S16_LE -D hw:0,0 -d 10 /tmp/test-mic.wav
    Recording WAVE '/tmp/test-mic.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
    arecord: pcm_read:2032: read error: Input/output error

     

    Any one managed to enable arecord in mainline??

     

    Thanks!

  7. Hey guys,

     

    I have a 3.5" waveshare clone lcd with me. I managed to enable LCD display with the following commands on my orange pi lite.

     

    modprobe fbtft_device debug=3 rotate=90 name=flexfb speed=16000000 gpios=reset:2,dc:71 txbuflen=32768
    
    modprobe flexfb width=320 height=480 regwidth=16 init=-1,0xb0,0x0,-1,0x11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0x36,0x28,-1,0x11,-1,0x29,-3
    
    con2fbmap 1 8

     

    I've tried following the instructions on https://github.com/Tomasz-Mankowski/ADS7846-X11-daemon github page however, i got stuck when i ran the file

    ./ADS7846-X11: Error connecting to SPI dev: /dev/spidev0.0
    All closed...

     

    I am using legacy kernel 3.4.113 orange pi lite armbian (FRESH installation)

    Could anyone help me... My touch screen is using XPT2046 but from what i searched, it is similar to ADS7846.

     

    I do have /dev/spidev0.0 in /dev

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines