how to change banana pi m1 video output from hdmi to RCA
So here it is, I get a banana pi m1 from my friend, and I don't have HDMI Monitors, so I try to plug the yellow RCA cable.

Surprisingly(yeah not surprising maybe), the video output is not the same with raspberry pi, where the default is you get video output on all port (e.g. RCA and HDMI). The default in Banana Pi is HDMI, either you boot in raspbian, ubuntu mate, etc. So you need to change the configuration file in the boot partition in SD Card.
Soo you think you can change the output by changing the cmdline? config.txt just like in raspberry pi?
no, you can't
you need to change the script.bin. You can find the script.bin in the root directory of your sd card if you are using ubuntu mate rom for banana pi. If you are using raspbian/bananian you can find the file in bananapi/script.bin
the file is binary, so you need to decode it first into a fex file. Convert it using this converter:
windows:
https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/fex-bin-convertor-windows
linux:
http://linux-sunxi.org/Sunxi-tools
mac:
http://lists.phcomp.co.uk/pipermail/arm-netbook/2012-May/003549.html
after decoding, you open the fex file, and find disp_init. The explanation of each field is as follows:
[disp_init]
- disp_init_enable: 0 to disable; 1 to enable
- disp_mode: Display mode to use:
-
-
| mode | display mode |
| 0 | screen0(screen0, fb0) |
| 1 | screen1(screen1, fb0) |
| 2 | dualhead(screen0, screen1, fb0, fb1) (2 screens, 2 framebuffers) |
| 3 | xinerama(screen0, screen1, fb0) (2 screens, one big framebuffer) |
| 4 | clone(screen0, screen1, fb0) (2 screens, one standard framebuffer) |
- screen0_out_color_range: Output color range for HDMI (applies to both screen0/screen1 - there is no screen1_out_color_range):
-
-
| type | output color range |
| 0 | 16-255 Limited Range (Default) |
| 1 | 0-255 Full Range - PC Level |
| 2 | 16-235 Limited Range - Video Level |
- screen0_output_type: Output type for screen0:
- screen1_output_type: Output type for screen1:
-
-
| type | Output type |
| 0 | NONE |
| 1 | LCD |
| 2 | TV |
| 3 | HDMI |
| 4 | VGA |
- screen0_output_mode: Output mode for screen0:
- screen1_output_mode: Output mode for screen1:
-
-
| mode | used for tv/hdmi output | used for vga output |
| 0 | 480i | 1680*1050 |
| 1 | 576i | 1440*900 |
| 2 | 480p | 1360*768 |
| 3 | 576p | 1280*1024 |
| 4 | 720p50 | 1024*768 |
| 5 | 720p60 | 800*600 |
| 6 | 1080i50 | 640*480 |
| 7 | 1080i60 | |
| 8 | 1080p24 | |
| 9 | 1080p50 | |
| 10 | 1080p60 | 1920*1080 |
| 11 | pal | 1280*720 |
| 14 | ntsc | |
This is my configuration:
- composite tv/RCA/Yellow Cable/whatever you call it
- HDMI is also on, so its like a clone display
[disp_init]
disp_init_enable = 1
disp_mode = 4
screen0_output_type = 3
screen0_output_mode = 1
screen1_output_type = 2
screen1_output_mode = 11
fb0_framebuffer_num = 2
fb0_format = 10
fb0_pixel_sequence = 0
fb0_scaler_mode_enable = 1
fb1_framebuffer_num = 2
fb1_format = 10
fb1_pixel_sequence = 0
fb1_scaler_mode_enable = 1
For more info you can get it here:
http://linux-sunxi.org/Fex_Guide#disp_init_configuration
Now you can have the display of your banana pi in your tv!
Troubleshooting:
- if display dont come out, check the cable connection
- check if you edited the right file
- if the display is monochrome/black and white change the NTSC PAL configuration
- you can also turn off the EDID if the resolution is causing you problem