natester reacted to Strontium in Orange Pi Zero (H2+/H3) TV Out on Mainline, WORKING
Well it took me longer than i hoped but i have managed to forward port icenowys code for TVE on the H2+/H3 to mainline armbian. It seems to work totally fine, with a few caveats.
First: Sample images of it in action -> https://imgur.com/a/vXQEM
Second: the patch itself -> https://github.com/stevenj/h3-tve/tree/v0.0.11
Third a prebuilt image for Orange Pi Zero: -> https://github.com/stevenj/h3-tve/releases/tag/v0.0.11
just put the patch into userpatches for the sunxi-next kernel, and build. it should apply cleanly. Its for H2+/H3. I have only tried it on a orange pi zero, but it should work on all H2+/H3 boards.
You then need to edit /boot/armbianEnv.txt
add tve to overlays to enable it. the driver will only run and enable tv out when the tv out devices are specifically enabled, so i created an overlay which does this. If you want to turn TV out off, just remove tve from the overlays line.
My armbianEnv.txt overlays looks like this:
overlays=usbhost2 usbhost3 tve If you want copious amounts of DRM debug info in your logs, add this as well:
extraargs=drm.debug=0xF Its not needed, unless you really want the debug info.
1. The default mode is PAL, with 720x576 resolution. Thats outside of normal PAL displayable area, and so the screen overscans.
I dont know how to correct this, although its mostly just annoying with terminals.
I also don't know how to change the video mode to NTSC.
2. The standard font is a bit thin for composite video, and causes slight strobing and color impurity. Its because PAL needs pixels to be a certain MINIMUM width or color information can not be properly encoded.
A way to resolve this is use :
# apt-get install fbterm ... $ fbterm -s 20 This will run a terminal which is easy to change the font, and pick a bigger one. its much easier to read. Look at the help for fbterm to work out everything it can do.
3. I used the program "fim" to display the test images. there are others for doing stuff on the terminal.
4. I haven't tried X. I am not interested in running an X terminal on a TV, but it should probably work fine.
Other than that it all seems good. I originally tested my hardware with the legacy kernel, and the image quality from this patch seems superior to what the legacy kernel produces. (legacy was noisy)
The only other thing you need to know is Orange Pi Zero is missing filter circuity from its Composite Output, the most important thing you need to do is put a 50 ohm resistor between the signal and GND. i soldered one inside my RCA connector, it fits fine and isn't too difficult. IF you don't do this the image will bloom and look like total crap, so you have been warned.
As this patch allows TVE to be enabled/disabled through use of the Device Tree overlays, i think it should be fine if the Armbian devs want to include it. I am happy to clean out some of the debug messages i added if they are interested in making a standard part of the build. If not, its easy enough to build your own image, just follow the guides on how to rebuild armbian.
EDIT: I need to mention, all props go to Icenowy Zheng who wrote the original driver. I just tweaked the device tree stuff and got it in a state where it can apply cleanly to the armbian mainline kernel and build system.
Original code is here:
natester reacted to davedsbca in PSA: Orange Pi Zero expansion board tv-out not working solution
Having invested many, many hours getting the video out to work on my recently purchased Orange Pi Zero kit, I'd like to leave this heads up for the next person having trouble with video out. In my case, none of the advice I could find in this forum or elsewhere seemed to make any difference. If you find yourself in a similar situation, here are some things you should know.
The latest Armbian images for the OrangePi Zero enable composite video out by default. It should just work. (Well at least the Ubuntu image -- I never actually verified Debian Jesse worked after I fixed my expansion board.) You should NOT need to fiddle with /etc/modules or .fex files. Although that bit of information can be found in other posts on this forum, it took me a while to stumble across it, so I'm calling it out here. Don't trust the expansion board or your AV cable. If you hook everything up and don't get video right away, the first thing to try is connecting your monitor directly to the GND and TV-OUT pins on the 13-pin connector. Regretfully, I only resorted to this after much time spent futzing with other things. In my case, not only was my expansion board borked, but the supposedly Zune/RaspberryPi compatible AV cable I got from Amazon actually had the ground and video swapped on the yellow RCA plug. The expansion board adds a bit of circuitry to the tv-out line, an inductor, two capacitors and a resistor, which I'm guessing is some sort of filter that attempts to "clean up" the video signal. Being that you can hook up video directly to the OrangePi Zero without an expansion board, it would seem this filtering is entirely optional. I happened to notice (while checking continuity with a multitester) that the resistance between the GND and TV-OUT pins on the bare, unpowered OrangePi Zero board was effectively an open circuit, but when the expansion board was installed, it changed to approximately 50 ohms. It seemed to me that all this would accomplish is to pull the composite video signal very close to ground and hold it there. On a hunch, I took an Xacto knife and carefully scraped R359 from the filter circuit off of the expansion board. This did the trick. Now, with a proper AV cable, my monitor could pick up a signal on its CVBS port. I've attached a picture of the expansion board with the location of this resistor circled in red. Maybe I just had a bad resistor, but if you've tried everything else, it may be worth knowing that removing this resistor can't hurt and is worth trying.