aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

LVDS add-on for Raspberry models with 40pin GPIO

Sun Aug 14, 2016 12:23 pm

Hi,

since I wanted to reduce size and complexity of my LVDS add-on board I've started to develop two new versions.

Why two versions? Simply because there are different LVDS data mappings possible:
R1R0mapping.jpg
R1 and R0 bits were transmitted in first LVDS channel
R1R0mapping.jpg (48.91 KiB) Viewed 23605 times
R3R2mapping.jpg
R1 and R0 were transmitted in third LVDS channel. Third channel will not be connected in case of 6-bit color only.
R3R2mapping.jpg (49.59 KiB) Viewed 23605 times
I've first tested the board with a 7in WXGA module from Sharp (LQ070Y3LW01). This has 800x400pixel resolution, 85 degree all around viewing angle, brightness is 360nits (typ.) and contrast ratio is 800:1. The display is used in R1R0 LVDS data mapping.
CIMG1978.jpg
CIMG1978.jpg (28.88 KiB) Viewed 23605 times
I've provisionally mounted the display, RPi3 with attached LVDS4PI add-on to a Smartipi touch case which gives a nice fit for the display.
Last edited by aBUGSworstnightmare on Sun Aug 14, 2016 12:39 pm, edited 2 times in total.

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Sun Aug 14, 2016 12:30 pm

Some more pictures (only 3 per post allowed):
CIMG1981.jpg
Detail shot of the RPi3 with mounted add-on board. The camera connector is not obstructed, RPi can be used with heatsinks. Low profile since wide components are on bottom side.
CIMG1981.jpg (51.75 KiB) Viewed 23591 times
CIMG1982.jpg
bottom view of the PCB. 5V/3A DC/DC for Raspberry power supply, 3.3V DC/DC for LCD logic supply voltage
CIMG1982.jpg (49.91 KiB) Viewed 23591 times
Picture shows the GPIO connector mounted on the bottom of the PCB for use with i.e. RPi3 (as pictured). It can be mounted on top when using the board with a Raspberry Pi Zero. This will allow to make use of the optional components: pogo-pins for 5V power supply to Raspberry and USB-A socket (will post a picture of such a setup later).

The board dimensions are 30x99mm, it is a 4-layer PCB.

You can find a video showing the board in operation here: https://youtu.be/JmE5L34jfi8

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Wed Aug 17, 2016 11:42 am

Some more pictures showing a 12.3in letterbox display (1280x480pixels) connected to RPi Zero
WP_20160817_12_01_09_Smart.jpg
Two videos on top of a slideshow
WP_20160817_12_01_09_Smart.jpg (45.08 KiB) Viewed 23456 times
WP_20160817_12_02_00_Smart.jpg
backside view
WP_20160817_12_02_00_Smart.jpg (42.87 KiB) Viewed 23456 times
WP_20160817_12_02_14_Smart.jpg
system is powered by single 12V supply. all other voltages (i.e. 5V for RPi Zero) were generated by the board.
WP_20160817_12_02_14_Smart.jpg (44.5 KiB) Viewed 23456 times

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Wed Aug 17, 2016 11:52 am

WP_20160817_11_23_51_Smart.jpg
Possible mounting options
WP_20160817_11_23_51_Smart.jpg (46.62 KiB) Viewed 23454 times
The add-on board can be used in two different mounting options: either on top of the Raspberry (right board is on top of a Zero), or below a Zero V1.3(left board).
WP_20160817_11_24_08_Smart.jpg
Side view. Note the pogo-pins for connecting PWR and USB data signals. A USB-A socket can be added to the add-on board.
WP_20160817_11_24_08_Smart.jpg (40.15 KiB) Viewed 23454 times
Micro USB power cable is used for powering the RPi. This is my preferred option when using the add-on with RPi3. Could be omitted in case of the Zero - possible to simply close a solder jumper for connecting 5V to pin 2/4 on the 40-pin GPIO connector (5V; solder jumper is visible on the first picture).
WP_20160817_11_24_23_Smart.jpg
backside view: one can clearly see the different mounting. USB-A socket is assembled on right board. The board will fit i.e. to RPi3 even when USB-A is mounted.
WP_20160817_11_24_23_Smart.jpg (44.66 KiB) Viewed 23454 times

User avatar
rpdom
Posts: 12737
Joined: Sun May 06, 2012 5:17 am
Location: Ankh-Morpork

Re: LVDS add-on for Raspberry models with 40pin GPIO

Wed Aug 17, 2016 1:36 pm

Very nice :-)

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Nexus 7 LVDS adapter

Sun Oct 23, 2016 8:16 am

As pointed out already, my adapter can be used with 6-bit and 8-bit LVDS.
An example of a display with 6-bit interface is the one from the Google Nexus 7 Gen1 (2012) tablet. Different models where used in this tablet:
- CPT CLAA070WP03XG
- HYDIS HV070WX2-1E0
6bitlvds.jpg
Data mapping of display
6bitlvds.jpg (30.47 KiB) Viewed 22549 times
The display is IPS technology (wide viewing angle >85° from all sides) and has 1.280x800pixels (WXGA resolution).
I've developed a small adapter PCB which allows me to use the original LVDS FPC from the tablet and my LVDS4PI add-on board.
GPExportPhoto-0001.jpg
GPExportPhoto-0001.jpg (25.77 KiB) Viewed 22551 times
GPExportPhoto.jpg
GPExportPhoto.jpg (29.3 KiB) Viewed 22551 times
Here is a video of the display in operation, connected to a RPI3.
https://youtu.be/960YQle-f2w
Here is the config.txt file used in the demo.

Code: Select all

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details
# for use with Google Nexus 7 Gen1 (2012) display modules
# - CPT CLAA070WP03XG
# - HYDIS HV070WX2-1E0
# by Joerg Quinten, aBUGSworstnightmare

dtoverlay=dpi24
disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0

# set display orientation
display_rotate=3

# uncomment to force a console size. By default it will be display's size minus
# overscan.
framebuffer_width=1280
framebuffer_height=760
# still have to figure out why 1280x800 gives black border left and right (40pixels
# each)

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem=304


# ---------------------------------------------
# Enable DPI
# --------------------------------------------- 
enable_dpi_lcd=1

# ---------------------------------------------
# Make DPI default output
# ---------------------------------------------
display_default_lcd=1

# ---------------------------------------------
# custom HDMI mode
# https://www.raspberrypi.org/forums/viewtopic.php?p=613926#p613926
# https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
dpi_group=2
dpi_mode=87

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=off
dtparam=spi=off

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# ---------------------------------------------
# DPI output format definitions
# https://www.raspberrypi.org/forums/viewtopic.php?p=628061#p628061
# DPI structure: https://www.raspberrypi.org/forums/viewtopic.php?p=617719#p617719
# ---------------------------------------------
# output_format:
#   1: DPI_OUTPUT_FORMAT_9BIT_666
#   2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1
#   3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2
#   4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3
#   5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1
#   6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2
#   7: DPI_OUTPUT_FORMAT_24BIT_888
#
# rgb_order:
#   1: DPI_RGB_ORDER_RGB
#   2: DPI_RGB_ORDER_BGR
#   3: DPI_RGB_ORDER_GRB
#   4: DPI_RGB_ORDER_BRG
#
# output_enable_mode:
#   0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID
#   1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS
#
# invert_pixel_clock:
#   0: RGB Data changes on rising edge and is stable at falling edge
#   1: RGB Data changes on falling edge and is stable at rising edge
#
# hsync polarity: 
#   0: default for HDMI mode
#   1: inverted
#
# vsync polarity:
#   0: default for HDMI mode
#   1: inverted
#
# output_enable_polarity:
#   0: default for HDMI mode
#   1: inverted
#
# hsync phase:
#   0: rising edge
#   1: falling edge
#
# vsync phase:
#   0: rising edge
#   1: falling edge
#
# output_enable phase:
#   0: rising edge
#   1: falling edge
# ---------------------------------------------
dpi_output_format=483351

# ---------------------------------------------
# HDMI timing definitions
#https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
# hdmi_timings= <h_active_pixels>
#		  LCD module horizontal resolution
#
#               <h_sync_polarity>
# 		  0: active low
#		  1: active high
#
#               <h_front_porch> 
#		<h_sync_pulse>
#		<h_back_porch>
#		<v_active_lines>
#		  LCD module vertical resolution
#
#		<v_sync_polarity>
# 		  0: active low
#		  1: active high
#
#		<v_front_porch>
#		<v_sync_pulse>
#		<v_back_porch>
#
#		<v_sync_offset_a>
#		<v_sync_offset_b>
#		<pixel_rep>
#
#		<frame_rate>
#		  screen refrech rate (50/60Hz supported only!)#
#
#		<interlaced>
#
#		<pixel_freq>
#		  calculates as: <h_active_pixels> * <v_active_lines> * <frame_rate>
#
#		<aspect_ratio>
#		  HDMI_ASPECT_4_3 = 1
#		  HDMI_ASPECT_14_9 = 2
#		  HDMI_ASPECT_16_9 = 3
#		  HDMI_ASPECT_5_4 = 4
#		  HDMI_ASPECT_16_10 = 5
#		  HDMI_ASPECT_15_9 = 6
#		  HDMI_ASPECT_21_9 = 7
#		  HDMI_ASPECT_64_27 = 8
# ---------------------------------------------
hdmi_timings=800 0 16 16 64 1280 0 5 1 2 0 0 0 60 0 66800000 5

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Sun Oct 23, 2016 8:21 am

For more info on the Nexus adapter refer to viewtopic.php?f=44&t=158525
WP_20161014_17_58_59_Smart.jpg
LVDS adapter PCB for displays used in Google Nexus 7 Gen1 (2012) tablet
WP_20161014_17_58_59_Smart.jpg (30.58 KiB) Viewed 22547 times

peter8
Posts: 6
Joined: Mon Nov 07, 2016 1:09 am

Re: LVDS add-on for Raspberry models with 40pin GPIO

Mon Nov 07, 2016 10:38 am

Great Job - I'm surpriced that's possible to use GPIO pins as LVDS Signals !?!
It's planned to sell the PCB or to provide the files - would be great to have it for x-mas :)
- Peter

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Mon Nov 07, 2016 11:50 am

Here are some more timinigs/displays I've used so far:
Sharp LQ101K1LY05
WP_20161017_09_44_30_Smart.jpg
10.1in
WP_20161017_09_44_30_Smart.jpg (60.04 KiB) Viewed 22053 times

Code: Select all

# ---------------------------------------------
# For use with Sharp LQ101K1LY05 module only
# on RPi B+/2/3 - Raspbian Jessie/Wheezy
# ---------------------------------------------

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# ---------------------------------------------
# Overscan Information
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
# --------------------------------------------- 
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0

# uncomment to force a console size. By default it will be display's size minus
# overscan.
framebuffer_width=1280
framebuffer_height=800

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# ---------------------------------------------
# Enable DPI
# --------------------------------------------- 
enable_dpi_lcd=1

# ---------------------------------------------
# Make DPI default output
# ---------------------------------------------
display_default_lcd=1

# ---------------------------------------------
# custom HDMI mode
# https://www.raspberrypi.org/forums/viewtopic.php?p=613926#p613926
# https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
dpi_group=2
dpi_mode=87

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
gpu_mem=256

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=off
#dtparam=i2s=on
dtparam=spi=off

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# ---------------------------------------------
# DPI output format definitions
# https://www.raspberrypi.org/forums/viewtopic.php?p=628061#p628061
# DPI structure: https://www.raspberrypi.org/forums/viewtopic.php?p=617719#p617719
# ---------------------------------------------
# output_format:
#   1: DPI_OUTPUT_FORMAT_9BIT_666
#   2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1
#   3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2
#   4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3
#   5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1
#   6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2
#   7: DPI_OUTPUT_FORMAT_24BIT_888
#
# rgb_order:
#   1: DPI_RGB_ORDER_RGB
#   2: DPI_RGB_ORDER_BGR
#   3: DPI_RGB_ORDER_GRB
#   4: DPI_RGB_ORDER_BRG
#
# output_enable_mode:
#   0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID
#   1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS
#
# invert_pixel_clock:
#   0: RGB Data changes on rising edge and is stable at falling edge
#   1: RGB Data changes on falling edge and is stable at rising edge
#
# hsync polarity: 
#   0: default for HDMI mode
#   1: inverted
#
# vsync polarity:
#   0: default for HDMI mode
#   1: inverted
#
# output_enable_polarity:
#   0: default for HDMI mode
#   1: inverted
#
# hsync phase:
#   0: rising edge
#   1: falling edge
#
# vsync phase:
#   0: rising edge
#   1: falling edge
#
# output_enable phase:
#   0: rising edge
#   1: falling edge
# ---------------------------------------------
dpi_output_format=461847

# ---------------------------------------------
# HDMI timing definitions
#https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
# hdmi_timings= <h_active_pixels>
#		  LCD module horizontal resolution
#
#               <h_sync_polarity>
# 		  0: active low
#		  1: active high
#
#               <h_front_porch> 
#		<h_sync_pulse>
#		<h_back_porch>
#		<v_active_lines>
#		  LCD module vertical resolution
#
#		<v_sync_polarity>
# 		  0: active low
#		  1: active high
#
#		<v_front_porch>
#		<v_sync_pulse>
#		<v_back_porch>
#
#		<v_sync_offset_a>
#		<v_sync_offset_b>
#		<pixel_rep>
#
#		<frame_rate>
#		  screen refrech rate (50/60Hz supported only!)#
#
#		<interlaced>
#
#		<pixel_freq>
#		  calculates as: <h_active_pixels> * <v_active_lines> * <frame_rate>
#
#		<aspect_ratio>
#		  HDMI_ASPECT_4_3 = 1
#		  HDMI_ASPECT_14_9 = 2
#		  HDMI_ASPECT_16_9 = 3
#		  HDMI_ASPECT_5_4 = 4
#		  HDMI_ASPECT_16_10 = 5
#		  HDMI_ASPECT_15_9 = 6
#		  HDMI_ASPECT_21_9 = 7
#		  HDMI_ASPECT_64_27 = 8
# ---------------------------------------------
#hdmi_timing for LQ101K1LY05 configuration notes
#h_active_pixels = 1280
#h_sync_polarity = 0
#h_front_porch = 40
#h_sync_pulse = 0 
#h_back_porch = 1
#v_active_lines = 800
#v_sync_polarity = 0
#v_front_porch = 12
#v_sync_pulse = 0
#v_back_porch = 1
#v_sync_offset_a = 0
#v_sync_offset_b = 0
#pixel_rep = 0
#frame_rate = 60
#interlaces = 0
#pixel_freq = 800000000
#aspect_ratio = 5
# ---------------------------------------------
hdmi_timings=1280 0 40 0 1 800 0 12 0 1 0 0 0 60 0 80000000 5
Sharp LQ121K1LG52
WP_20161017_11_40_26_Smart.jpg
12.1in
WP_20161017_11_40_26_Smart.jpg (53.46 KiB) Viewed 22053 times

Code: Select all

# ---------------------------------------------
# For use with Sharp LQ121K1LG52 module only
# Raspbian Jessie/Wheezy
# rev. 10/10/2016
# ---------------------------------------------

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1

# ---------------------------------------------
# Overscan Information
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
# --------------------------------------------- 
max_framebuffer_width=1280
max_framebuffer_height=1280
#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0

# uncomment to force a console size. By default it will be display's size minus
# overscan.
# Portrait or Landscape Setting - only uncomment one block at a time
# Portrait-1 ( normal )
display_rotate=0
framebuffer_width=1280
framebuffer_height=800

# Landscape-2 ( upside down )
#display_rotate=2
#framebuffer_width=1280
#framebuffer_height=800

#Portrait-1 ( right side up )
#display_rotate=1
#framebuffer_width=800
#framebuffer_height=1280

# Portrait-2 ( left side up )
#display_rotate=3
#framebuffer_width=800
#framebuffer_height=1280

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# ---------------------------------------------
# Enable DPI
# --------------------------------------------- 
enable_dpi_lcd=1

# ---------------------------------------------
# Make DPI default output
# ---------------------------------------------
display_default_lcd=1

# ---------------------------------------------
# custom HDMI mode
# https://www.raspberrypi.org/forums/viewtopic.php?p=613926#p613926
# https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
dpi_group=2
dpi_mode=87

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
gpu_mem=320

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=off
#dtparam=i2s=on
dtparam=spi=off

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# ---------------------------------------------
# DPI output format definitions
# https://www.raspberrypi.org/forums/viewtopic.php?p=628061#p628061
# DPI structure: https://www.raspberrypi.org/forums/viewtopic.php?p=617719#p617719
# ---------------------------------------------
# output_format:
#   1: DPI_OUTPUT_FORMAT_9BIT_666
#   2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1
#   3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2
#   4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3
#   5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1
#   6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2
#   7: DPI_OUTPUT_FORMAT_24BIT_888
#
# rgb_order:
#   1: DPI_RGB_ORDER_RGB
#   2: DPI_RGB_ORDER_BGR
#   3: DPI_RGB_ORDER_GRB
#   4: DPI_RGB_ORDER_BRG
#
# output_enable_mode:
#   0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID
#   1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS
#
# invert_pixel_clock:
#   0: RGB Data changes on rising edge and is stable at falling edge
#   1: RGB Data changes on falling edge and is stable at rising edge
#
# hsync polarity: 
#   0: default for HDMI mode
#   1: inverted
#
# vsync polarity:
#   0: default for HDMI mode
#   1: inverted
#
# output_enable_polarity:
#   0: default for HDMI mode
#   1: inverted
#
# hsync phase:
#   0: rising edge
#   1: falling edge
#
# vsync phase:
#   0: rising edge
#   1: falling edge
#
# output_enable phase:
#   0: rising edge
#   1: falling edge
# ---------------------------------------------
dpi_output_format=461847

hdmi_pixel_freq_limit=200000000
# ---------------------------------------------
# HDMI timing definitions
#https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
# hdmi_timings= <h_active_pixels>
#		  LCD module horizontal resolution
#
#               <h_sync_polarity>
# 		  0: active low
#		  1: active high
#
#               <h_front_porch> 
#		<h_sync_pulse>
#		<h_back_porch>
#		<v_active_lines>
#		  LCD module vertical resolution
#
#		<v_sync_polarity>
# 		  0: active low
#		  1: active high
#
#		<v_front_porch>
#		<v_sync_pulse>
#		<v_back_porch>
#
#		<v_sync_offset_a>
#		<v_sync_offset_b>
#		<pixel_rep>
#
#		<frame_rate>
#		  screen refrech rate (50/60Hz supported only!)#
#
#		<interlaced>
#
#		<pixel_freq>
#		  calculates as: <h_active_pixels> * <v_active_lines> * <frame_rate>
#
#		<aspect_ratio>
#		  HDMI_ASPECT_4_3 = 1
#		  HDMI_ASPECT_14_9 = 2
#		  HDMI_ASPECT_16_9 = 3
#		  HDMI_ASPECT_5_4 = 4
#		  HDMI_ASPECT_16_10 = 5
#		  HDMI_ASPECT_15_9 = 6
#		  HDMI_ASPECT_21_9 = 7
#		  HDMI_ASPECT_64_27 = 8
# ---------------------------------------------
#hdmi_timing for LQ121K1LG52 configuration notes
#h_active_pixels = 1280
#h_sync_polarity = 0
#h_front_porch = 40
#h_sync_pulse = 8 
#h_back_porch = 1
#v_active_lines = 800
#v_sync_polarity = 0
#v_front_porch = 12
#v_sync_pulse = 3
#v_back_porch = 1
#v_sync_offset_a = 0
#v_sync_offset_b = 0
#pixel_rep = 0
#frame_rate = 60
#interlaces = 0
#pixel_freq = 860000000
#aspect_ratio = 5
# ---------------------------------------------
hdmi_timings=1280 0 40 8 1 800 0 12 3 1 0 0 0 60 0 86000000 5
and for Sharp LQ123K3LG01 (the letterbox size shown above)

Code: Select all

# ---------------------------------------------
# For use with Sharp LQ123K3LG01 module only
# on RPi - Raspbian Jessie/Wheezy
# ---------------------------------------------

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# ---------------------------------------------
# Overscan Information
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
# --------------------------------------------- 
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=288

# uncomment to force a console size. By default it will be display's size minus
# overscan.
framebuffer_width=1280
framebuffer_height=480

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# ---------------------------------------------
# Enable DPI
# --------------------------------------------- 
enable_dpi_lcd=1

# ---------------------------------------------
# Make DPI default output
# ---------------------------------------------
display_default_lcd=1

# ---------------------------------------------
# custom HDMI mode
# https://www.raspberrypi.org/forums/viewtopic.php?p=613926#p613926
# https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
dpi_group=2
dpi_mode=87

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
gpu_mem=192

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=off
#dtparam=i2s=on
dtparam=spi=off

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# ---------------------------------------------
# DPI output format definitions
# https://www.raspberrypi.org/forums/viewtopic.php?p=628061#p628061
# DPI structure: https://www.raspberrypi.org/forums/viewtopic.php?p=617719#p617719
# ---------------------------------------------
# output_format:
#   1: DPI_OUTPUT_FORMAT_9BIT_666
#   2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1
#   3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2
#   4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3
#   5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1
#   6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2
#   7: DPI_OUTPUT_FORMAT_24BIT_888
#
# rgb_order:
#   1: DPI_RGB_ORDER_RGB
#   2: DPI_RGB_ORDER_BGR
#   3: DPI_RGB_ORDER_GRB
#   4: DPI_RGB_ORDER_BRG
#
# output_enable_mode:
#   0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID
#   1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS
#
# invert_pixel_clock:
#   0: RGB Data changes on rising edge and is stable at falling edge
#   1: RGB Data changes on falling edge and is stable at rising edge
#
# hsync polarity: 
#   0: default for HDMI mode
#   1: inverted
#
# vsync polarity:
#   0: default for HDMI mode
#   1: inverted
#
# output_enable_polarity:
#   0: default for HDMI mode
#   1: inverted
#
# hsync phase:
#   0: rising edge
#   1: falling edge
#
# vsync phase:
#   0: rising edge
#   1: falling edge
#
# output_enable phase:
#   0: rising edge
#   1: falling edge
# ---------------------------------------------
dpi_output_format=458775

# ---------------------------------------------
# HDMI timing definitions
#https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
# hdmi_timings= <h_active_pixels>
#		  LCD module horizontal resolution
#
#               <h_sync_polarity>
# 		  0: active low
#		  1: active high
#
#               <h_front_porch> 
#		<h_sync_pulse>
#		<h_back_porch>
#		<v_active_lines>
#		  LCD module vertical resolution
#
#		<v_sync_polarity>
# 		  0: active low
#		  1: active high
#
#		<v_front_porch>
#		<v_sync_pulse>
#		<v_back_porch>
#
#		<v_sync_offset_a>
#		<v_sync_offset_b>
#		<pixel_rep>
#
#		<frame_rate>
#		  screen refrech rate (50/60Hz supported only!)#
#
#		<interlaced>
#
#		<pixel_freq>
#		  calculates as: <h_active_pixels> * <v_active_lines> * <frame_rate>
#
#		<aspect_ratio>
#		  HDMI_ASPECT_4_3 = 1
#		  HDMI_ASPECT_14_9 = 2
#		  HDMI_ASPECT_16_9 = 3
#		  HDMI_ASPECT_5_4 = 4
#		  HDMI_ASPECT_16_10 = 5
#		  HDMI_ASPECT_15_9 = 6
#		  HDMI_ASPECT_21_9 = 7
#		  HDMI_ASPECT_64_27 = 8
# ---------------------------------------------
#hdmi_timing for LQ123K3LG01 configuration notes
#h_active_pixels = 1280
#h_sync_polarity = 1
#h_front_porch = 40
#h_sync_pulse = 8
#h_back_porch = 2
#v_active_lines = 768
#v_sync_polarity = 1
#v_front_porch = 12
#v_sync_pulse = 4
#v_back_porch = 2
#v_sync_offset_a = 0
#v_sync_offset_b = 0
#pixel_rep = 0
#frame_rate = 60
#interlaces = 0
#pixel_freq = 84000000
#aspect_ratio = 6
# ---------------------------------------------
hdmi_timings=1280 1 40 8 2 768 1 12 4 2 0 0 0 60 0 70000000 6
Last edited by aBUGSworstnightmare on Mon Nov 07, 2016 2:47 pm, edited 5 times in total.

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Mon Nov 07, 2016 12:52 pm

Just a note to all the nice people out there who are comparing commodity prices with hand made custom solutions:

Please don't bother me with your PM's asking for prices!
This is not the dirt-cheap Chinese HDMI-to-LVDS-driver, build in millions of pcs per year, that sells on ebay for 5 bucks! This board here is a custom development which I made for my own use.

If you think you can put this to good use as well, fine! Go ahead and ask me. But don't expect that I will sell you a unit with a single-piece-BOM-cost of 68EUR for a few bucks :idea:

I'm not running a business, nor do I want to make money out of this! I'm willing to sell a board, but I don't need to :!:

Edit: Refer to the BOM of another of my adapter boards (https://drive.google.com/drive/folders/ ... sp=sharing - 19%VAT needs to be added since I'm living in D; all prices shown are Mouser sales prices). They share the same components except for the display interface. The LVDS boards needs some components in addition. PCB is also more expensive because this one is a 4-layer board.

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Mon Nov 21, 2016 1:17 pm

New timing data, this time with another 12.1in WXGA module (LQ121K1LW56) and a new RPi A+ with 512MB RAM
WP_20161115_11_32_55_Smart.jpg
WP_20161115_11_32_55_Smart.jpg (58.07 KiB) Viewed 21544 times

Code: Select all

# ---------------------------------------------
# For use with Sharp LQ121K1LW56 module only
# Raspbian Jessie/Wheezy
# rev. 14/11/2016
# ---------------------------------------------

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

dtoverlay=dpi24

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1


# ---------------------------------------------
# Overscan Information
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
# --------------------------------------------- 
max_framebuffer_width=1280
max_framebuffer_height=1280
#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0

# uncomment to force a console size. By default it will be display's size minus
# overscan.
# Portrait or Landscape Setting - only uncomment one block at a time
# Portrait-1 ( normal )
display_rotate=0
framebuffer_width=1280
framebuffer_height=800

# Landscape-2 ( upside down )
#display_rotate=2
#framebuffer_width=1280
#framebuffer_height=800

#Portrait-1 ( right side up )
#display_rotate=1
#framebuffer_width=800
#framebuffer_height=1280

# Portrait-2 ( left side up )
#display_rotate=3
#framebuffer_width=800
#framebuffer_height=1280

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# ---------------------------------------------
# Enable DPI
# --------------------------------------------- 
enable_dpi_lcd=1

# ---------------------------------------------
# Make DPI default output
# ---------------------------------------------
display_default_lcd=1

# ---------------------------------------------
# custom HDMI mode
# https://www.raspberrypi.org/forums/viewtopic.php?p=613926#p613926
# https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
dpi_group=2
dpi_mode=87

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=900

gpu_mem=160


# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=off
#dtparam=i2s=on
dtparam=spi=off

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
 ---------------------------------------------
# DPI output format definitions
# https://www.raspberrypi.org/forums/viewtopic.php?p=628061#p628061
# DPI structure: https://www.raspberrypi.org/forums/viewtopic.php?p=617719#p617719
# ---------------------------------------------
# output_format:
#   1: DPI_OUTPUT_FORMAT_9BIT_666
#   2: DPI_OUTPUT_FORMAT_16BIT_565_CFG1
#   3: DPI_OUTPUT_FORMAT_16BIT_565_CFG2
#   4: DPI_OUTPUT_FORMAT_16BIT_565_CFG3
#   5: DPI_OUTPUT_FORMAT_18BIT_666_CFG1
#   6: DPI_OUTPUT_FORMAT_18BIT_666_CFG2
#   7: DPI_OUTPUT_FORMAT_24BIT_888
#
# rgb_order:
#   1: DPI_RGB_ORDER_RGB
#   2: DPI_RGB_ORDER_BGR
#   3: DPI_RGB_ORDER_GRB
#   4: DPI_RGB_ORDER_BRG
#
# output_enable_mode:
#   0: DPI_OUTPUT_ENABLE_MODE_DATA_VALID
#   1: DPI_OUTPUT_ENABLE_MODE_COMBINED_SYNCS
#
# invert_pixel_clock:
#   0: RGB Data changes on rising edge and is stable at falling edge
#   1: RGB Data changes on falling edge and is stable at rising edge
#
# hsync polarity: 
#   0: default for HDMI mode
#   1: inverted
#
# vsync polarity:
#   0: default for HDMI mode
#   1: inverted
#
# output_enable_polarity:
#   0: default for HDMI mode
#   1: inverted
#
# hsync phase:
#   0: rising edge
#   1: falling edge
#
# vsync phase:
#   0: rising edge
#   1: falling edge
#
# output_enable phase:
#   0: rising edge
#   1: falling edge
# ---------------------------------------------
dpi_output_format=483351

# ---------------------------------------------
# HDMI timing definitions
#https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679
# ---------------------------------------------
# hdmi_timings= <h_active_pixels>
#		  LCD module horizontal resolution
#
#               <h_sync_polarity>
# 		  0: active low
#		  1: active high
#
#               <h_front_porch> 
#		<h_sync_pulse>
#		<h_back_porch>
#		<v_active_lines>
#		  LCD module vertical resolution
#
#		<v_sync_polarity>
# 		  0: active low
#		  1: active high
#
#		<v_front_porch>
#		<v_sync_pulse>
#		<v_back_porch>
#
#		<v_sync_offset_a>
#		<v_sync_offset_b>
#		<pixel_rep>
#
#		<frame_rate>
#		  screen refrech rate (50/60Hz supported only!)#
#
#		<interlaced>
#
#		<pixel_freq>
#		  calculates as: <h_active_pixels> * <v_active_lines> * <frame_rate>
#
#		<aspect_ratio>
#		  HDMI_ASPECT_4_3 = 1
#		  HDMI_ASPECT_14_9 = 2
#		  HDMI_ASPECT_16_9 = 3
#		  HDMI_ASPECT_5_4 = 4
#		  HDMI_ASPECT_16_10 = 5
#		  HDMI_ASPECT_15_9 = 6
#		  HDMI_ASPECT_21_9 = 7
#		  HDMI_ASPECT_64_27 = 8
# ---------------------------------------------
#hdmi_timing for LQ121K1LW56 configuration notes
#h_active_pixels = 1280
#h_sync_polarity = 1
#h_front_porch = 40
#h_sync_pulse = 1
#h_back_porch = 1
#v_active_lines = 800
#v_sync_polarity = 1
#v_front_porch = 1
#v_sync_pulse = 2
#v_back_porch = 1
#v_sync_offset_a = 0
#v_sync_offset_b = 0
#pixel_rep = 0
#frame_rate = 60
#interlaces = 0
#pixel_freq = 80000000
#aspect_ratio = 5
# ---------------------------------------------
hdmi_timings=1280 1 40 1 1 800 1 1 2 1 0 0 0 60 0 80000000 5

peter8
Posts: 6
Joined: Mon Nov 07, 2016 1:09 am

Re: LVDS add-on for Raspberry models with 40pin GPIO

Mon Nov 28, 2016 4:24 pm

A note to all the nice people - also the TX23D38VM0CAA (800x480) is working well on the RPI.
IMG_20161128_165845.jpg
IMG_20161128_165845.jpg (60.05 KiB) Viewed 21310 times
Because the schematic and layout is a secret I create my own one (all rights reserved, free for private use ;) ). It's just a free wiring but the PCB's are ordered (only 50x25mm and two layers) .
pcb.png
pcb.png (18.1 KiB) Viewed 21310 times
The BOM is very simple and so all together will be very cheap (less 20$). More in some days.

-Peter

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Mon Nov 28, 2016 6:29 pm

peter8 wrote:A note to all the nice people - also the TX23D38VM0CAA (800x480) is working well on the RPI

Because the schematic and layout is a secret I create my own one (all rights reserved, free for private use ;) ). It's just a free wiring but the PCB's are ordered (only 50x25mm and two layers) .
Looks good and you figured out by yourself! So schematic is not a secret :idea: everything one need to know is here https://www.raspberrypi.org/documentati ... /README.md
peter8 wrote: The BOM is very simple and so all together will be very cheap (less 20$). More in some days.
Yep, since it's only the SN75LVDS83BDGGR (Mouser 595-SN75LVDS83BDGGR) it's just $6.10 + a few USD for decoupling caps + connectors (looks like your also using Molex, i.e. Mouser 538-87758-2016, USD1.07, 2mm pitch header) + PCB.

My version also includes a 5V/3A DC/DC power supply for the RPi (based on LMZ14203TZ-ADJ/NOPBCT-ND, Mouser 926-MZ14203TZADJNOPB, USD14.32) and a 3V/2A DC/DC for LCD logic supply (LMZ14202TZX-ADJ/NOPB, Mouser 926-LM14202TZXADJNPB, USD9.89). I need some more caps and since I'm using 25V rated ones on the input of the DC/DC the BOM of my board is more expensive.
But as I said: I do not care about the cost when developing PCBs since there is no need for me to sell them for making profit. They only need to do what I want them to do.

Keep us informed how your double layer board performs with higher resolution and pixel clocks.

peter8
Posts: 6
Joined: Mon Nov 07, 2016 1:09 am

Re: LVDS add-on for Raspberry models with 40pin GPIO

Tue Nov 29, 2016 8:14 pm

aBUGSworstnightmare wrote:
peter8 wrote: Because the schematic and layout is a secret I create my own one (all rights reserved, free for private use ;) ).
Looks good and you figured out by yourself! So schematic is not a secret :idea: everything one need to know is here https://www.raspberrypi.org/documentati ... /README.md
So is's still a secret , because not published :!: :?:
Hints how to create it is not a release (and to late).

I will published all data if finalized. If someone needs the schematic now, write me a PM.
Also if you want a board - I will have ~10 more as I need.
aBUGSworstnightmare wrote:
peter8 wrote: The BOM is very simple and so all together will be very cheap (less 20$). More in some days.
Yep, since it's only the SN75LVDS83BDGGR (Mouser 595-SN75LVDS83BDGGR) it's just $6.10 + a few USD for decoupling caps + connectors (looks like your also using Molex, i.e. Mouser 538-87758-2016, USD1.07, 2mm pitch header) + PCB.
Yes, + PCB - where you told us yours is very expensive. Not 'less 20$' as mine.
aBUGSworstnightmare wrote: My version also includes a 5V/3A DC/DC power supply for the RPi (based on LMZ14203TZ-ADJ/NOPBCT-ND, Mouser 926-MZ14203TZADJNOPB, USD14.32) and a 3V/2A DC/DC for LCD logic supply (LMZ14202TZX-ADJ/NOPB, Mouser 926-LM14202TZXADJNPB, USD9.89). I need some more caps and since I'm using 25V rated ones on the input of the DC/DC the BOM of my board is more expensive.
But as I said: I do not care about the cost when developing PCBs since there is no need for me to sell them for making profit. They only need to do what I want them to do.
If you decide to add more stuff and also to pay a single volume price you have to life with this decisions. :lol: Without me.
aBUGSworstnightmare wrote: Keep us informed how your double layer board performs with higher resolution and pixel clocks.
No problem: Much better than yours, because of a real HF design :D

I don't need more than two layers. Not for routing and not for shielding. And if someone think to press a layout between two metal plates fix the design errors than you are going wrong.

You have to shield (decoupling / magnetic field) the digital wires against each other (not done in your design) and not primary against the environment and you have to unterstand the LVDS theme.
It's not a good idea to use a surface monted chip and than use vias to go to the inner layers, do some routing, and again use vias to the different sides to bring the signal back to the outer layer and to the connector pins - all that for a short 5mm distance. Over all, you use 'full through vias' (instead of blind vias) for this and so create some nice antennas (4 per signal). A 2-layer PCB here is enough.

LVDS signals had to be close together (not as the digital signals before), without corners (like in the picture below) ...
lvds.png
lvds.png (9.59 KiB) Viewed 21179 times
... and each pair should have the same lenght (as in my design - see column 'l mm').

Code: Select all

Signal f   max. [MHz] l [mm] A [mm2] R [mOhm]
IN3_P      41796.0    7.073  0.009   14.0
IN3_N      42357.7    7.078  0.009   13.8
CLK_OUT_P  45435.6    6.588  0.009   12.9
CLK_OUT_N  45741.9    6.564  0.009   12.8
IN2_N      47636.6    6.293  0.009   12.3
IN2_P      48218.9    6.217  0.009   12.1
IN1_N      48059.5    6.238  0.009   12.2
IN1_P      48934.8    6.227  0.009   11.9
IN0_P      44000.5    6.814  0.009   13.3
IN0_N      43627.1    6.872  0.009   13.4
I only refer the small photos, but I see a lot of more things (ground fields, parallel tracks, 4 layers - but signal lines on the outer layers, EMC ?, ESD ? ...)

But no problem - it's working for you - all is fine, good job.

- Peter

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Wed Nov 30, 2016 6:38 am

peter8 wrote:
aBUGSworstnightmare wrote:
peter8 wrote: Because the schematic and layout is a secret I create my own one (all rights reserved, free for private use ;) ).
Looks good and you figured out by yourself! So schematic is not a secret :idea: everything one need to know is here https://www.raspberrypi.org/documentati ... /README.md
So is's still a secret , because not published :!: :?:
Hints how to create it is not a release (and to late).

I will published all data if finalized. If someone needs the schematic now, write me a PM.
Also if you want a board - I will have ~10 more as I need.
aBUGSworstnightmare wrote:
peter8 wrote: The BOM is very simple and so all together will be very cheap (less 20$). More in some days.
Yep, since it's only the SN75LVDS83BDGGR (Mouser 595-SN75LVDS83BDGGR) it's just $6.10 + a few USD for decoupling caps + connectors (looks like your also using Molex, i.e. Mouser 538-87758-2016, USD1.07, 2mm pitch header) + PCB.
Yes, + PCB - where you told us yours is very expensive. Not 'less 20$' as mine.
aBUGSworstnightmare wrote: My version also includes a 5V/3A DC/DC power supply for the RPi (based on LMZ14203TZ-ADJ/NOPBCT-ND, Mouser 926-MZ14203TZADJNOPB, USD14.32) and a 3V/2A DC/DC for LCD logic supply (LMZ14202TZX-ADJ/NOPB, Mouser 926-LM14202TZXADJNPB, USD9.89). I need some more caps and since I'm using 25V rated ones on the input of the DC/DC the BOM of my board is more expensive.
But as I said: I do not care about the cost when developing PCBs since there is no need for me to sell them for making profit. They only need to do what I want them to do.
If you decide to add more stuff and also to pay a single volume price you have to life with this decisions. :lol: Without me.
aBUGSworstnightmare wrote: Keep us informed how your double layer board performs with higher resolution and pixel clocks.
No problem: Much better than yours, because of a real HF design :D

I don't need more than two layers. Not for routing and not for shielding. And if someone think to press a layout between two metal plates fix the design errors than you are going wrong.

You have to shield (decoupling / magnetic field) the digital wires against each other (not done in your design) and not primary against the environment and you have to unterstand the LVDS theme.
It's not a good idea to use a surface monted chip and than use vias to go to the inner layers, do some routing, and again use vias to the different sides to bring the signal back to the outer layer and to the connector pins - all that for a short 5mm distance. Over all, you use 'full through vias' (instead of blind vias) for this and so create some nice antennas (4 per signal). A 2-layer PCB here is enough.

LVDS signals had to be close together (not as the digital signals before), without corners (like in the picture below) ...
lvds.png
... and each pair should have the same lenght (as in my design - see column 'l mm').

Code: Select all

Signal f   max. [MHz] l [mm] A [mm2] R [mOhm]
IN3_P      41796.0    7.073  0.009   14.0
IN3_N      42357.7    7.078  0.009   13.8
CLK_OUT_P  45435.6    6.588  0.009   12.9
CLK_OUT_N  45741.9    6.564  0.009   12.8
IN2_N      47636.6    6.293  0.009   12.3
IN2_P      48218.9    6.217  0.009   12.1
IN1_N      48059.5    6.238  0.009   12.2
IN1_P      48934.8    6.227  0.009   11.9
IN0_P      44000.5    6.814  0.009   13.3
IN0_N      43627.1    6.872  0.009   13.4
I only refer the small photos, but I see a lot of more things (ground fields, parallel tracks, 4 layers - but signal lines on the outer layers, EMC ?, ESD ? ...)

But no problem - it's working for you - all is fine, good job.

- Peter
So you're the pro! Thanks for teaching us!

I decided not to bother mankind with a third schematic if there are two published already:
- Reference schematic from TI data sheet http://www.ti.com/lit/ds/symlink/sn75lvds83b.pdf - I think this data sheet is also a good read for you in regards of PCB layer stacking and right angle bends in traces
- Google Nexus 7 2012 schematic by Asus - this is how real professionals make it! Refer to page 22 of the document linked here viewtopic.php?p=1036338#p1036338 (it's there since 9/11)

Again: sorry for not spoon feeding you with my schematic! Raspberry Pi is about learning and that's exactly what my posting resulted in: you did some research on which components to use and made your own (mother of all SN75LVDS83B) schematic and layout.
Mission accomplished!

BTW: better open your own thread in the 'for sale' section for selling your PCB. People will find it there more easily

MichaR
Posts: 16
Joined: Thu Mar 10, 2016 5:49 am
Location: Berlin / Germany

Re: LVDS add-on for Raspberry models with 40pin GPIO

Tue Dec 06, 2016 5:53 am

Sorry Peter, but you design is all other than the best...

Your desingn does not match the required impendance for LVDS. Your design have nearly 90° corners. Only the pairs of each signal are length matched and not all traces together as requested for LVDS. The max. frequencies for each trace in the table are nonsense. The final PCB from the factory probably will have every signal pair shorten.

best regards
Micha

peter8
Posts: 6
Joined: Mon Nov 07, 2016 1:09 am

Re: LVDS add-on for Raspberry models with 40pin GPIO

Tue Dec 06, 2016 9:03 pm

Hi Micha - ignore the freq in the table - it's only a printout of the tool.
The first thing is to have the pair-lenght similar, also the general lenght is not a big difference (0.86 mm) if you compare with the rest (i.e. cable). Over all - it's a digital signal. If you calculate the voltage tolerances and timings you will see that it will be never a problem. And no - it's not the best :D, but it's better than others and much cheaper.

>> The final PCB from the factory probably will have every signal pair shorten.
Why do you think this ?

Noting is as perfect as in theory - I think a real developer will argee. Every time you have find a compromis between all the constrains. I only want to show, that not only by use a four layer technology a PCB is perfect. So, feel free to make some constructive hints (only two layer, max size 50x24mm) -it's only my first shot.

Two more remarks outside the general discussion:
I need this only for my displays (800x600) and also the testsetup (picture ahead) with a breakout board and free wires works well.

regards Peter

MichaR
Posts: 16
Joined: Thu Mar 10, 2016 5:49 am
Location: Berlin / Germany

Re: LVDS add-on for Raspberry models with 40pin GPIO

Wed Dec 07, 2016 7:00 am

>> The final PCB from the factory probably will have every signal pair shorten.
Why do you think this ?
Well, if I remember right, the LVDS converter has a pad width of nearly 12 mil. So I think, your traces have a width of around 10 mil. The distance between the traces of one pair is between 6 and 12 mil (which is bad for continous impedance, but that is a different story). So from this meassures take a look at your vias. The distance between the vias and the traces at the bottom side is less than 4 mil. For cheap PCB's most manufactures can securely produce PCB's with a distance of at least 6 mil. If you pay more, some manufactures are able to make PCBs with a distance of at least 4 mil.

About 2 vs 4 layers...
Yes two layers works most times for hobbyist usage. But anyway, with only two layers the PCB most time will fail in any radiation test, even if there is only a small part used for digital applications. As suggested by aBUGSworstnightmare, a 4-layer design, where one inner layer is used for ground and the second inner layer is used for power, is a good choice. Only with such PCB-configuration you can create impedance matched pairs, which fit's with the small trace witdh used in todays modern layouts.

Btw. thoose round traces are looking bad. They look painted by hand. In modern designs you will find round traces only as meander for length matching reasons. Sometimes they are used in very long traces for USB signals. All is fine with straight corners as long as the angle is big enough (typically 135 degree).

best regards
Micha

peter8
Posts: 6
Joined: Mon Nov 07, 2016 1:09 am

Re: LVDS add-on for Raspberry models with 40pin GPIO

Wed Dec 07, 2016 8:38 am

MichaR wrote:
>> The final PCB from the factory probably will have every signal pair shorten.
Why do you think this ?
Well, if I remember right, the LVDS converter has a pad width of nearly 12 mil. So I think, your traces have a width of around 10 mil. The distance between the traces of one pair is between 6 and 12 mil (which is bad for continous impedance, but that is a different story). So from this meassures take a look at your vias. The distance between the vias and the traces at the bottom side is less than 4 mil. For cheap PCB's most manufactures can securely produce PCB's with a distance of at least 6 mil. If you pay more, some manufactures are able to make PCBs with a distance of at least 4 mil.
It's nonsens - you don't now it, but you think it is a problem... what !?!
DRC rule check is fine, the rest is a problem of the pcb manufacturer (yes, DRC from the Manufacturer)
MichaR wrote: About 2 vs 4 layers...
Yes two layers works most times for hobbyist usage.
->
aBUGSworstnightmare wrote: Raspberry Pi is about learning and that's exactly what my posting resulted
MichaR wrote: But anyway, with only two layers the PCB most time will fail in any radiation test, even if there is only a small part used for digital applications. As suggested by aBUGSworstnightmare, a 4-layer design, where one inner layer is
used for ground and the second inner layer is used for power, is a good choice.
:oops: think this is a typo and you mean outer layers ... btw. also the LVDS cable is unshielded.
MichaR wrote: Only with such PCB-configuration you can create impedance matched pairs, which fit's with the small trace witdh used in todays modern layouts.
Yes - but this is not suggested by aBUGSworstnightmare, it's clear that with a 4 layer layout a layouter has more posibilities - everyone knows this. I also like 6 and 8 layer designs, and I did it.
But it makes no sense if i.e. aBUGSworstnightmare don't first follow the LVDS rules propagandised also by you !

So you think he has, aren't you ? You know his inner layer design ?
And do you want to say the version of aBUGSworstnightmare with the antenna vias through all layers is 'the best...' ? Really ? :roll: Also Vias are 90° corners :!:
Better as my design ? Surely not. ;) But if - for the 10x higher costs ?
How has he calculated the impedance matched pairs ?
Maybe you want to show us your design first, thx?
If you want follow this theoretical discussion - publish the layout of aBUGSworstnightmare first.
MichaR wrote: Btw. thoose round traces are looking bad. They look painted by hand.
What ? Sorry boy - next time I will create a 'nice locking' layout for you! Some nice comics ?
MichaR wrote: In modern designs you will find round traces only as meander for length matching reasons.
... and that's we talk about here... and meanders = x * 90° angles, but you don't like it... and you told us the storry about distances, space, mils and cheap PCB's - do you know what you want ? Meanders needs space, and for a distance of 4-5mm ??? In 10 mil ?
MichaR wrote: Sometimes they are used in very long traces for USB signals. All is fine with straight corners as long as the angle is big enough (typically 135 degree).
Yes, famous - a straight line is the best, it's not surpricing! But, ...:
lvds_design_rules.png
lvds_design_rules.png (45.02 KiB) Viewed 20709 times
most time / sometimes / for cheap PCB's most manufactures ... it's speculative, waste my time and doesn't help us. But you are free, buy the PCB from aBUGSworstnightmare or create a better one.

best regards, Peter

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Thu Dec 08, 2016 12:13 pm

Hi,
funny to read how people react on comments! Also funny to read that own design is better than others because other design is using 90° bends (vias and wires)
detail.png
details shot from better layout (without corners)
detail.png (33.83 KiB) Viewed 20596 times
My design has no 90° bends in any signal. But this via (and signal trace) is for sure better than mine.

Conclusion: I fully agree with poster that his design is way more advanced and sophisticated than mine :!: Hopefully this will stop people from a**ing around in this treath and focus back on OT.
Let's wait for posters results once PCBs were received. He is for sure using a way better PCB manufacturing house than I did because my DRC fails with such a design (my DRCs are width/space 5/5mil, min dia finished hole 12mil, regardless of 2 or 4layer design rules are the same for this manufacturer).

peter8
Posts: 6
Joined: Mon Nov 07, 2016 1:09 am

Re: LVDS add-on for Raspberry models with 40pin GPIO

Thu Dec 08, 2016 12:57 pm

Hi folks, PCB design is a hard theme - maybe the following two pictures help you to unterstand the problem - think 3D, not only 2D.
Anyway - it's not my profession to teach you in all variants of layouting - let's wait for the results.
right-click for a bigger view

-Peter
abug_layout.png
abug_layout.png (18.94 KiB) Viewed 20559 times
peter8_laout.png
peter8_laout.png (9.38 KiB) Viewed 20548 times

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Thu Dec 08, 2016 2:03 pm

peter8 wrote:
peter8_laout.png
So I need to be picky now: You have 3x 90° corners in the signal that is routed through the via and one one this other! Have you considered skin effect at all? Sure you can stay in your EMC radiation limits for CE and UL approval with this design?? What a kindergarden!

We got your points and I alreday concluded: your layout is better. So why do you keep arguing? Get back on topic and if you think you need to discuss PCB design rules open an therad in the 'who cares' section on this forum or write a book on the topic! This is not a all related with this threath's topic 'LVDS add-on for Raspberry models with 40pin GPIO'

MichaR
Posts: 16
Joined: Thu Mar 10, 2016 5:49 am
Location: Berlin / Germany

Re: LVDS add-on for Raspberry models with 40pin GPIO

Fri Dec 09, 2016 5:44 am

MichaR wrote:
But anyway, with only two layers the PCB most time will fail in any radiation test, even if there is only a small part used for digital applications. As suggested by aBUGSworstnightmare, a 4-layer design, where one inner layer is
used for ground and the second inner layer is used for power, is a good choice.


:oops: think this is a typo and you mean outer layers.
No it's not a typo. Go on and learn about modern PCB design.
btw. also the LVDS cable is unshielded.
For high quality cables that is no problem at all. It's twisted pair. Anyway, longer cables for LVDS are shielded too.

Back to the topic... @aBUGSworstnightmare is there any reason why you use that impensive voltage regulators (inductorless step down converters, if I see it correctly). Is it just to save space on the PCB or is there any electrical reason?

best regards
Micha

aBUGSworstnightmare
Posts: 861
Joined: Tue Jun 30, 2015 1:35 pm

Re: LVDS add-on for Raspberry models with 40pin GPIO

Fri Dec 09, 2016 6:11 am

MichaR wrote:..Back to the topic... @aBUGSworstnightmare is there any reason why you use that impensive voltage regulators (inductorless step down converters, if I see it correctly). Is it just to save space on the PCB or is there any electrical reason?
..
Micha
I'm using TI Simple Switchers (http://www.ti.com/product/LMZ14203?keyM ... Everything).
Why I'm using them is simple:
- wide input voltage range (6 to 42V) --> main reason for using them! So only one power supply is needed (@backlight voltage range)
- low output voltage ripple
- good efficiency
- saves board space (only a few external components needed) and easy to layout
- protection features

They are not inductor less; it's inside of the package.

I don't care about unit price because I'm not building a mass market product, aiming for maximized profit. There is a nice definition for hobby: Spend maximum effort and resources (i.e. money) for achieving minimal results :lol:

MichaR
Posts: 16
Joined: Thu Mar 10, 2016 5:49 am
Location: Berlin / Germany

Re: LVDS add-on for Raspberry models with 40pin GPIO

Fri Dec 09, 2016 6:49 am

Ah OK, sounds logical to mee. Sure, price is not so importent... also for me as a hobbyist.

Btw.: Do you have any experience with the DS90C387 as LVDS converter?

best regards
Micha

Return to “Add-ons”

Who is online

Users browsing this forum: No registered users and 2 guests