rlsten

Members
  • Content Count

    20
  • Joined

  • Last visited

1 Follower

About rlsten

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. A tutorial would be great! Maybe you can start a new thread with some kind of sticky, with a reference to the tutorial in this thread. Anyway, we'd really appreciate a step-by-step for this--we seem to be close but are obviously missing something.
  2. Hi @A-P: Attached is the touch.dts I used. I have also attached the ads7846-touch.dtbo overlay file. These give me touch responsiveness on mainline. However, I can't seem to rotate the screen to landscape, and the colors and layout are screwed up, so I really haven't been able to calibrate or make real use of touch with this. But it definitely responds to touch. On legacy, the screen rotates fine and looks great, but touch won't work. Let me know how it comes out for you. Best, Rod ads7846-touch.dtbo touch.dts
  3. Update to my prior post: I was able to get touch working using fresh mainline downloaded today, after update and upgrade, with the compiled ads7486-touch.dtbo based the edits I made to touch.dt from my previous post. PA1 is the correct pin for the interrupt. I left everything else as @ldiaz had it. Thanks again to @ldiaz!
  4. Thanks also @ldiaz for your guide! I interpreted the instructions somewhat differently than @A-P but unfortunately, I could not get it to work either. I assumed that the change in the ads7846_pins section of "touch.dt" referred to Physical Pin 11 of the LCD screen, the "TP_IRQ","Touch Panel Interrupt". Since the screen sits as a hat on the Orange Pi Zero, physical pin 11 on the Pi Zero is assigned to "PA1 or GPIO1". So I changed "touch.dt" as follows: /* * Generic Device Tree overlay for the ADS7846 touch controller ported from * RPI overlay to sun8i-h3. * Tested on Orange Pi Zero with XPT2046 with two spi slaves: * This DT requires that that spi-add-cs1 overlay is loaded. it * * Notes for customization: * Fragment 0 can be commented as the alias already exists. * Fragment 1: customize you pins to your desired pin out. * pins= "<pin_id>" in this example is set to PA7; * function = "irq" or "gpio_in"; tested with both with similar results * bias-pull-up; comment if your display has no pull-up-resistor. * Fragment 2: * target: spi sub-tree selected, for this example &spi1 * spidev@0: Section for CS=0(reg=<0>) for screen. if managed using fbtft_device * driver this section can be deleted if not a /dev/spiN.0 will be created * * ads7846: * - spi-max-frequency =<Hz> * - reg: <N> CS for the application * - interrupts: <bank gpio type> type=2 IRQ_TYPE_EDGE_FALLING * - pendown-gpio = <&pio bank gpio 0> * * For additional parameters: see https://www.kernel.org/doc/Documentation/devicetree/bindings/input/ads7846.txt * */ /dts-v1/ /plugin/; / { compatible = "allwinner,sun8i-h3"; /* fragment@0 { target-path = "/aliases"; __overlay__ { spi1 = "/soc/spi@01c69000"; }; }; */ fragment@1 { target = <&pio>; __overlay__ { ads7846_pins: ads7846_pins { pins= "PA1"; /* TIRQ of the screen is connected to PA07" */ function = "irq"; /* gpio_in also works */ bias-pull-up; /* pull up resistor present comment this line if not */ }; }; }; fragment@2 { target = <&spi1>; __overlay__ { #address-cells = <1>; #size-cells = <0>; status = "okay"; /* Leave the first CS as in template * this section can be removed if other driver is using CS=0 spidev@0 { reg = <0>; // Chip Select 0 compatible = "spidev"; spi-max-frequency = <1600000>; status = "okay"; }; */ /* custom ads7846 definition */ ads7846: ads7846@1 { compatible = "ti,ads7846"; reg = <1>; /* Chip Select 1 */ pinctrl-names = "default"; pinctrl-0 = <&ads7846_pins>; spi-max-frequency = <1600000>; interrupts = <0 1 2>; /* <bank gpio type> bank=0 port=7 (PA7) type=2 -> high-to-low edge triggered */ interrupt-parent = <&pio>; pendown-gpio = <&pio 0 1 0>; /* <&pio bank gpio 0> change to bank=0 port=7 for PA7 */ /* driver defaults */ ti,x-min = /bits/ 16 <0>; ti,y-min = /bits/ 16 <0>; ti,x-max = /bits/ 16 <0x0FFF>; ti,y-max = /bits/ 16 <0x0FFF>; ti,pressure-min = /bits/ 16 <0>; ti,pressure-max = /bits/ 16 <0xFFFF>; ti,x-plate-ohms = /bits/ 16 <400>; }; }; }; }; I tried this with the changes to both fragment 1 and fragment 2, and just fragment 1, but neither worked. I also followed all the other steps set out by @ldiaz I suspect the problem is with physical Pin 26, which @A-P rightly points out is assigned to PA10 or GPIO10 on the Orange Pi Zero. According to the Pin-out for the screen, Physical Pin 26 is supposed to be mapped to "TP_CS, Touch Panel chip selection". But physical pin 26 on the Orange Pi Zero is mapped to SIM_DET/PA_EINT10 / PA10 / GPIO10. On the Raspberry Pi 2/3, where the screen works fine, Physical Pin 26 is mapped to "SPI0_CE0, GPIO7". So it seems that something has to be done to tell the Orange Pi that physical pin 26 is assigned to SPI0_CE0. It seems that part of fragment 2 is attempting to do that. I also found this thread, How to enable ads7846, where there is a lot of discussion about needing two SPI busses, one for the screen, we are using Bus 1, and a separate bus for the touch panel, in our case probably bus 0. Should we change fragment 2 to reflect that we are using bus 1 for the screen? I note that I am using the "fbtft_device driver", is it a problem if we don't delete the spidev@0 section of fragment@2? Or should that be spidev@1? I also see that when the ads_7846 module is set out in /etc/modules in the Raspberry Pi, there are numerous settings that are included, for example: ads7846_device model=7846 cs=1 gpio_pendown=17 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 On the orange Pi zero, I think gpio_pendown would =1. (On the Raspberry Pi, physical pin 11 is GPIO17.) Does something similar need to be done here? Or does the compiled "ads7846-touch.dbto" overlay handle that? I apologize for my ignorance about a lot of this, but I hope my questions will help show what I am doing wrong. Thanks again for all your efforts to make this work!
  5. I want to start by saying how much I appreciate the efforts of @glow, @ldiaz, and @A-P on this topic. Thanks to you, I have been able to get a Waveshare Spotpear 3.5(A) Touchscreen working with Legacy on both the Orange Pi Zero and the Orange Pi Zero Plus 2. The Waveshare Screen has the identical pin outs and uses the same driver (ili_9486) as the screen used by @A-P, and his settings, supplemented by @ldiaz's additions to armbianEnv.txt regarding SPI Bus Number 1, worked for my screen as well. The only difference was in armbianEnv.txt, I had to use extraargs="fbcon=0". I don't know what controls the creation of the framebuffers in /dev, but I only had fb0. Next, I will try to get the touch functionality working. My screen uses the same drivers as the one used by @ldiaz; earlier you attached the file you used to activate touch (touch.dt); my question is, where does this file go? Finally, I apologize for asking this question, but on the LCD, I get a tty login screen, the same as I get using SSH. I can't open a desktop environment from this console (startx says command not found). Can someone explain what I have to do to have the LCD open to a desktop environment. I have xfce and lightdm already installed. Thanks very much!
  6. Thanks glow! Yes I am using legacy. Does touch work too? I will have to give this display a try!
  7. Hi ldiaz, Would you mind giving some more information about how you set up an LCD to work with the Orange Pi Zero? it would be most appreciated! I'm trying to set up a Waveshare Spotpear 3.5" LCD; I would really like to set up an Adafruit 2.8 capacitive touch screen, but that is for later. Here are some questions: What armbian distribution are you using? What LCD did you use? What GPIOs on the Orange Pi did you use and how do they match with the LCD? Did you make any modifications to script.bin.? Did you download any drivers or other packages? Did you user overlays? Did you have to modify any other files to get it to work? Thank you very much, Rod
  8. I have a couple of questions for what happens after you change sdc_detmode from 3 to 1 in the script.fex and convert it back to script.bin: 1. Can you mount a microSD card at boot, or only manually mount it after boot? 2. If you later want to use an operating system on a microSD card, do you have to change sdc_detmode back to 3 before the Orange Pi will boot from the SD Card? Is there anything else you have to do to make it boot from an SD card if you have an OS on the emmc? Thanks!
  9. Hi, I have also found that the Orange Pi Zero runs constantly very hot, and when playing music located on a Samsung 2TB SSD connected via USB through mpd to an external USB DAC, the temperature reaches greater than 80 C. What's strange is that a Nano Pi Neo Air with the 6212 WiFi chip, and an Orange Pi Zero Plus 2, both running Legacy Ubuntu and with the same settings and doing the same thing as the Orange Pi Zero, both run between 30-40 C. I used the Nano Pi specific heat sink for the Nano Pi Neo Air, and passive Amazon heat sinks for the Orange Pis. Does any one have any idea what could be causing the Orange Pi Zero to run at such a high temperature? Thanks!
  10. OK. At least now I know I'm not completely crazy! I know you'll figure it out. Thanks!
  11. Does this mean I should put the firmware in a different location, i.e., /lib/firmware/brcm? I really don't know how to get WiFi working!
  12. Like Sn0wblind, I too can't get my NanoPi Neo Air with AP6212A to work with the nightly build. The fw_bcm43438a1_apsta.bin and fw_bcm43438a1.bin in /lib/firmware/ap6212/ are present but when I run nmtui, it shows nothing to activate. iwconfig shows no wifi. I even tried substituting the firmware files from the Friendly Arm distribution, which includes some additional files, but no good.
  13. It seems that the latest Nano Pi Neo Air Boards and the relatively new Orange Pi Zero Plus 2 both use a modified version of the AP6212 WiFi+Bluetooth module, which is physically labelled as AP6212A. This new module apparently requires different drivers to operate. From my own experience, I was unable to get the internal WiFi module to work on a Nano Pi Neo Air (with AP6212A) using any of the Armbian distributions. However, I was able to get WiFi to work on that board with the Friendly Arm distribution at from https://www.mediafire.com/folder/sr5d0qpz774cs/NanoPi-NEO_Air#oc15bwqbuxgxe. I just received a second Nano Pi Neo Air from a different vendor, and this one was apparently one of the older boards because it came without a wifi antenna, and the WiFi module was labeled AP6212. The internal WiFi on this board worked perfectly with the legacy Armbian distribution for the Nano Pi Neo Air. I've seen elsewhere that there has been some trouble getting WiFi to work with the Orange Pi Zero Plus 2, and I suspect it is because of the change in the WiFi module. I personally know nothing of how to change or compile WiFi drivers, but would comparing the drivers in the Friendly Arm distribution help?
  14. Thanks very much for the info. I am attaching armhwinfo.log. The wifi module is labeled as follows: AP6212A W3112005 1706 I think the board is V2, if the version number is located above "NanoPi Neo Air" under the eMMC. Hope this helps figure out what is going on. armhwinfo.zip
  15. Thanks for your replies. The problem is the system is not recognizing the wifi adapter at all. When I try nmtui there is no adapter shown. I cannot find wlan0. I tried the latest beta image Armbian_5.27.170408_Nanopiair_Ubuntu_xenial_dev_4.10.3.img as it is, and I copied the drivers from https://linux-sunxi.org/FriendlyARM_NanoPi_NEO#Wi to /lib/firmware/brcm, but I am still unable to see a wifi device. I have the same problem with DietPi, but not with the FriendlyArm distribution nanopi-air-eflasher-sd8g-20170220.img. Any ideas what could be wrong?