Difference between revisions of "DExx-vd isl"

From Classic Console Upscaler wiki
Jump to navigation Jump to search
m (More information & discussion)
 
(12 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
DExx-vd_isl is video digitizer expansion card for selected Altera/Intel FPGA development boards, primarily [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046 DE10-Nano]. Most common use scenario is connecting retro video game consoles and home computers to modern displays. The combination of FPGA development board and expansion card has been used in development of [[OSSC Pro]] and can be considered OSSC Pro Lite version since aside from more limited connectivity and performance, it shares most major features.
 
DExx-vd_isl is video digitizer expansion card for selected Altera/Intel FPGA development boards, primarily [https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046 DE10-Nano]. Most common use scenario is connecting retro video game consoles and home computers to modern displays. The combination of FPGA development board and expansion card has been used in development of [[OSSC Pro]] and can be considered OSSC Pro Lite version since aside from more limited connectivity and performance, it shares most major features.
  
If you're new to the OSSC and scalers/processors in general, you may wish to jump to the quick start guide [link_todo here.]
+
If you're new to the OSSC and scalers/processors in general, you may wish to jump to the [https://videogameperfection.com/support-files/dexx-quickstart.pdf quick start guide].
  
 
=== Features ===
 
=== Features ===
Line 11: Line 11:
 
* Output up to ~165MHz (1920x1080p@60, 1920x1200p@60 etc.)
 
* Output up to ~165MHz (1920x1080p@60, 1920x1200p@60 etc.)
 
* Analog and digital audio inputs via SCART and toslink (DE10-Nano needs a modification for SPDIF support)
 
* Analog and digital audio inputs via SCART and toslink (DE10-Nano needs a modification for SPDIF support)
* OSD and optional character display as UI. IR control using OSSC remote control.
+
* OSD and optional character display as UI. (compatible LCDs are Newhaven NHD-0216CW & NHD-0220CW)
 +
* IR control using OSSC remote control.  
 
* Line multiplication and scaler operating modes
 
* Line multiplication and scaler operating modes
 
* Free running and frame locked operation
 
* Free running and frame locked operation
Line 29: Line 30:
 
Pre-assembled boards are sold worldwide by:
 
Pre-assembled boards are sold worldwide by:
  
* [https://www.videogameperfection.com VideoGamePerfection.com]
+
* [https://videogameperfection.com/products/dexx-vd_isl-board/ VideoGamePerfection.com]
  
 
=== More information & discussion ===
 
=== More information & discussion ===
Line 35: Line 36:
 
* [https://shmups.system11.org/viewtopic.php?f=6&t=67775 Original forum thread]
 
* [https://shmups.system11.org/viewtopic.php?f=6&t=67775 Original forum thread]
 
* [https://videogameperfection.com/forums/forum/ossc/ Dedicated discussion forums]
 
* [https://videogameperfection.com/forums/forum/ossc/ Dedicated discussion forums]
 +
* [https://videogameperfection.com/support-files/dexx-quickstart.pdf Quick Start Guide (PDF)]
  
 
== AV inputs ==
 
== AV inputs ==
Line 50: Line 52:
 
| AV1_RGBS || 1 || CSYNC || For video level c-sync only. Sync can be also extracted from composite video / luma.
 
| AV1_RGBS || 1 || CSYNC || For video level c-sync only. Sync can be also extracted from composite video / luma.
 
|-
 
|-
| AV1_RGsB || 4 || SOG ||
+
| AV1_RGsB || 4 || SOG || Use suitable adapter / SCART cable.
 
|-
 
|-
| AV1_YPbPr || 4 (tap twice) || SOG || Use YPbPr to SCART passthru adapter if you can build/find one.
+
| AV1_YPbPr || 4 (tap twice) || SOG || Use YPbPr to SCART passthru adapter. Some suitable adapters are sold online (e.g. [https://www.amazon.de/-/en/InLine%C2%AE-Scart-Adapter-plug-Composite/dp/B001JKLIRE/ref=pd_lpo_1?pd_rd_i=B001JKLIRE&th=1 this]) but most don't include audio jacks.
 
|-
 
|-
| AV1_RGBHV || 7 || Any || Needs a custom adapter cable which routes HSYNC to SCART pin 12 and VSYNC to pin 10.
+
| AV1_RGBHV || 7 || Any || Needs a custom adapter/cable which routes HSYNC to SCART pin 12 and VSYNC to pin 10.
 
|-
 
|-
| AV1_RGBCS || 7 (tap twice) || Any || For TTL c-sync only. Needs a custom adapter cable which routes CSYNC to SCART pin 12.
+
| AV1_RGBCS || 7 (tap twice) || Any || For TTL c-sync only. Needs a custom adapter/cable which routes CSYNC to SCART pin 12.
 
|}
 
|}
 +
 +
=== AV input adapter ===
 +
 +
A custom adapter (shown below) can be used to connect VGA or component input sources. A fully wired SCART cable needs to be connected between the adapter and DExx-vd_isl board. Design and gerbers are available [https://github.com/marqs85/DExx-vd_isl/tree/master/pcb_extra/dexx_video_adapter here]. DIY kit for the adapter may be released later.
 +
 +
[[File:Dexx_scart_adapter.png]]
  
 
=== Toslink ===
 
=== Toslink ===
Line 69: Line 77:
 
==== DE10-Nano ====
 
==== DE10-Nano ====
  
Insert the board into the header which is closer to the FPGA so that both HDMI and SCART ports are facing the same direction. Then plug the 4-pin jumper cable between the boards as shown in the picture. If you use standard SCART-RGB sources, flip the red sync switch towards "CSYNC" as pictured.
+
Insert the board into the GPIO header which is closer to the FPGA so that both HDMI and SCART ports are facing the same direction and plug the 4-pin jumper cable between the boards as shown in the picture. For those who'd like to install the board on the other side, see [https://videogameperfection.com/forums/topic/dexx-vd_isl-in-de-10-nano-gpio-1-port/#post-54395 this] thread. If you use standard SCART-RGB sources, flip the red sync switch towards "CSYNC" as pictured.
  
 
[[File:De10n-conn.jpg]]
 
[[File:De10n-conn.jpg]]
  
Prepara a dedicated microSD card (>=64MB) by downloading latest firmware [https://github.com/marqs85/DExx-vd_isl/blob/master/board/de10-nano/software/bootloader/sd_image/sdcard_cv.img?raw=true image] and writing it on the card in raw e.g. via [https://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]. Subsequent firmware updates can be made by easier fashion, see [[#Firmware update]].
+
Prepara a dedicated microSD card (>=64MB) by downloading and unzipping latest firmware [https://github.com/marqs85/DExx-vd_isl/blob/master/board/de10-nano/software/bootloader/sd_image/sdcard_cv.img.zip?raw=true image] and writing it on the card in raw e.g. via [https://sourceforge.net/projects/win32diskimager/ Win32 Disk Imager]. Subsequent firmware updates can be made by easier fashion, see [[#Firmware update]].
  
Additional notes are found on the board-specific [https://github.com/marqs85/DExx-vd_isl/tree/master/board/de10-nano/README.md README].
+
Additional notes (e.g. how to enable SPDIF) are found on the board-specific [https://github.com/marqs85/DExx-vd_isl/tree/master/board/de10-nano/README.md README].
 +
 
 +
For anyone experiencing stability issues in scaler mode with v1.4 board, [https://videogameperfection.com/forums/topic/dexx-vd_isl-horizontal-jitter-in-scaling-mode/ this] thread details a suggested fix.
  
 
==== Other development boards ====
 
==== Other development boards ====
Line 99: Line 109:
 
* SCANLINE_INT+/-: Hotkeys for adjusting scanline strength
 
* SCANLINE_INT+/-: Hotkeys for adjusting scanline strength
 
* LINEMULT_PROC:
 
* LINEMULT_PROC:
* SAMP_PHASE+/-:
+
* SAMP_PHASE+/-: Hotkeys for sample phase adjustment
 
* ZOOM:
 
* ZOOM:
 
* PAN:
 
* PAN:
* OSD:  
+
* OSD: Toggles between different OSD modes
* PROFILE_LOAD:
+
* PROFILE_LOAD: Opens quick menu for loading profiles
  
 
=== Getting started ===
 
=== Getting started ===
Line 113: Line 123:
 
== Settings ==
 
== Settings ==
  
=== Input select ===
+
Refer to [[OSSC_Pro#Settings]]
  
Selects the source.
+
The following settings are not available DExx-vd_isl:
  
=== AV1 video in opt. ===
+
* Inputs other than AV1
 +
* Analog sync pre-STC
 +
* AV4 video in opt.
 +
* 1080p120 preset
 +
* 2160p60 preset
 +
* Extra AV out
 +
* Pre-ADC gain
 +
* AV2-4 audio source
 +
* 3.5mm jack assign
 +
* Fan PWM
 +
* Led PWM
 +
* Load profile (DE10-Nano has only SD load option available)
 +
* Save profile (DE10-Nano has only SD save option available)
 +
* Fw. update
  
==== Video LPF ====
+
The following setting values have limited functionality with DExx-vd_isl:
''Video low-pass filter. Filters out high-frequency noise on video.''
 
* '''Auto''': Suitable LPF is automatically selected based on source mode '''[default]'''
 
* '''9-450MHz''': Video bandwidth is limited to selected frequency
 
  
==== YPbPr input Color Space ====
+
* 2x Hz/100Hz/120Hz modes (limited to 720p)
''Controls YPbPr->RGB colorspace conversion coefficients.''
+
* 1440p output mode may not be stable on DE10-Nano
* '''Rec. 601''': Input is assumed to be in Rec. 601 format, which is generally true for SD video '''[default]'''
+
* 2880x2160 modes are not functional
* '''Rec. 709''': Input is assumed to be in Rec. 709 format, which is generally true for HD video
 
  
==== R/Pr / G/Y / B/Pb offset ====
+
== Firmware update ==
''Fine-adjustment of Red/Pr / G/Y / B/Pb channel offset (brightness).''
 
* '''0-1023''': '''[default=512]'''
 
  
==== R/Pr / G/Y / B/Pb gain ====
+
=== DE10-Nano ===
''Fine-adjustment of Red/Pr / G/Y / B/Pb channel gain (contrast).''
 
* '''0-1023''': '''[default=324]'''
 
  
==== Clamp strength ====
+
Check the existing firmware version by pressing INFO key on remote:
''Sets the strength of backporch clamp.''
+
* v0.58 or earlier: Write the firmware image on SD card as described in [[DExx-vd_isl#DE10-Nano]]
* '''0-7''': '''[default=7]'''
+
* v0.59 or later: Eject the SD card and insert in into a computer. Replace DE10-Nano-vd_isl.rbf file on the filesystem with latest [https://github.com/marqs85/DExx-vd_isl/blob/master/board/de10-nano/output_files/DE10-Nano-vd_isl.rbf?raw=true version].
  
==== Clamp/ALC position ====
+
=== Other boards ===
''Sets the position of backporch clamp (in percentage of line length).''
 
* '''0.1-25%''': '''[default=0.7%]'''
 
  
==== Clamp width ====
+
Program latest .jic file on the flash of the development board. Refer to board-specific READMEs in github for more details.
''Sets the width of backporch clamp pulse (in percentage of line length).''
 
* '''0.1-10%''': '''[default=2.5%]'''
 
  
==== Clamp/ALC on coast ====
+
== Firmware changelog and roadmap ==
''Sets whether clamp/ALC is enabled during coast.''
 
* '''On''': Clamp/ALC enabled during coast. '''[default]'''
 
* '''Off''': Clamp/ALC disabled during coast.
 
 
 
==== Auto level ctl (ALC) ====
 
''Sets whether ALC is enabled.''
 
* '''On''': ALC enabled. '''[default]'''
 
* '''Off''': ALC disabled.
 
 
 
==== ALC V filter ====
 
''ALV vertical filter coefficient. Reduce from default if line/field tilt occurs.''
 
* '''32-4096 lines''': '''[default=512 lines]'''
 
 
 
==== ALC H filter ====
 
''ALV horizontal filter coefficient (duration for which ALC is applied after clamp).''
 
* '''16-128 pixels''': '''[default=16 pixels]'''
 
 
 
=== AV1 sync opt. ===
 
 
 
==== Analog sync Vth ====
 
''Sets the sync slicer threshold for video-level sync. May need adjustment if source sync level is not typical and dropouts occur.''
 
* '''0-300mV''': threshold voltage. '''[default=120mV]'''
 
 
 
==== TTL Hsync Vth ====
 
''Sets the sync slicer threshold for TTL level sync. May need adjustment if source sync level is not typical and dropouts occur.''
 
* '''400-3205mV''': threshold voltage. '''[default=1148mV]'''
 
 
 
==== Sync glitch filt len ====
 
''Sets the sync glitch filter length. May need to be increased if there are glitches around sync pulses.''
 
* '''37-592ns''': filter length. '''[default=111ns]'''
 
 
 
==== H-PLL Pre-Coast ====
 
''Defines when PLL coast (current freq. freeze) is activated.''
 
* '''0-5 lines''': Number of scanlines before vsync at when coast is activated. '''[default=4]'''
 
 
 
==== H-PLL Post-Coast ====
 
''Defines when PLL coast (current freq. freeze) is deactivated.''
 
* '''0-5 lines''': Number of scanlines after vsync at when coast is deactivated. '''[default=4]'''
 
  
==== H-PLL Loop Gain ====
+
=== v0.73 ===
''Adjusts loop gain of H-PLL which affects sampling clock stability. A higher value makes the PLL react fast to changes in hsync interval which may make sampling more accurate but at the cost of increased jitter in output pixel clock. A small value ensures best compatibility, but sync jitter in the source (e.g. SNES) may result to sampling jitter on nearby scanlines. Increase for sources with sync jitter if your display is able to tolerate jitter in output clock.''
+
* aligned with OSSC Pro firmware v0.73
* '''0-3''': '''[default=0]'''
 
  
=== Line multiplier opt ===
+
=== Older versions ===
 +
<div class="mw-collapsible mw-collapsed">
  
==== Line multiplier mode ====
+
=== v0.67 ===
''Selects how line multiplier mode operates.''
+
* added Reverse LPF option
* '''Pure''': All lines are multiplied for output, operation like original OSSC. Mainly for backwards compatibility.
+
* added Hybrid scanlines option
* '''Adaptive''': Visible lines are multiplied while amount of blanking lines is adjusted to match selected standard output resolution. '''[default]'''
 
  
==== Deinterlace mode ====
+
==== v0.66 ====
''Selects how interlaced content is processed in line multiplier modes.''
+
* added X68k presets
* '''Bob''': Displays fields one after another with even field being offset by half input line, resembling how interlaced content looks on a CRT. '''[default]'''
+
* fixed various P-LM issues
* '''Noninterlace restore''': Displays fields one after another without any offset by default. Useful for 240p games running in 480i (e.g. classic game collections).
 
  
==== NI restore Y offset ====
+
==== v0.64 ====
''Offsets even field in noninterlace restore mode.''
+
* added interlacing support for A-LM (480p->480i, 576p->576i, 1080p->1080i)
* '''0''': No offset for even field. '''[default]'''
+
* fixed A-LM Generic 16:9 for 2560x1440
* '''1''': Even field is offset by a full input line. Needed depending on field order of 240p->480i conversion.
+
* added some A-LM output presets for 576i/p inputs
 +
* fixed some issues related to downscaling
 +
* fixed SCL 576i mode mappings
 +
* optimized scanconverter pipeline performance
  
==== 256x240 aspect ====
+
==== v0.62 ====
''Selects the output aspect for 256x240 sampling presets.''
+
* added Auto aspect ratio option
* '''Pseudo 4:3 DAR''': Integer-multiplication is handled so that target aspect is close to 4:3. '''[default]'''
+
* added 480i & 576i CRT modes and moved CRT output modes under dedicated option
* '''1:1 PAR''': Maintains square pixel aspect ratio.
 
  
==== Pure LM opt. ====
+
==== v0.61 ====
''Refer to [[OSSC#Output_opt.]].''
+
* added 240p/288p/480p/540p CRT output modes and 1920x1080i mode
 +
* fixed Pure LM processing for 256col modes
 +
* fixed some aspect ratio calculations
 +
* added auto mode for YPbPr source colorspace
 +
* fixed manual phase adjustment for oversampled modes
  
==== Adaptive LM opt. ====
+
==== v0.59 ====
 +
* added support for profiles on SD card
  
===== <input_mode> proc =====
+
==== v0.57 ====
''Selects how <input_mode> is processed via output resolution and line multiplication factor.''
+
* Initial release
 
 
===== <input_mode> mode =====
 
''Selects a sampling preset for <input_mode>.''
 
 
 
==== P-LM Adv. timing ====
 
''Refer to [[OSSC#Advanced_timing_tweaker]].''
 
 
 
==== A-LM Adv. timing ====
 
''Allows editing of sampling/output parameters. Sampling preset to edit (default is current mode) is changed via LEFT/RIGHT keys and selected via OK key which then opens editor menu.''
 
 
 
===== Clock & Phase =====
 
''Enter to fine-tune sampling clock and phase via arrow keys. Only for advanced users.''
 
 
 
===== Size =====
 
''Enter to adjust bounding box size for input signal (active area) via arrow keys. In scaler mode the active window is scaled to full screen (unless in integer scale mode), effectively enabling zooming in/out.''
 
 
 
===== Position =====
 
''Enter to adjust bounding box position for input signal via arrow keys.''
 
 
 
===== Reset preset =====
 
''Resets parameters of selected preset to default values.''
 
 
 
=== Scaler opt. ===
 
 
 
=== Output opt. ===
 
 
 
==== Operating mode ====
 
''Selects operating mode of the device. Respective sub-menus under main menu have detailed options for each operating mode''
 
* '''Line multiplier''': Operates in basic line multiplication mode. '''[default]'''
 
* '''Scaker''': Operates in more flexible scaler mode.
 
 
 
==== Test pattern mode ====
 
''Selects video mode for test pattern. May be used to test display compatibility.''
 
* '''240p...2560x1440_60''': Output video mode. '''[default=480p]'''
 
 
 
==== TX mode ====
 
''Sets the output TX mode.''
 
* '''HDMI (RGB Full)''': 24-bit full range RGB output with audio and auxiliary Infoframe packets. '''[default]'''
 
* '''HDMI (RGB Limited)''': 24-bit limited range RGB output with audio and auxiliary Infoframe packets.
 
* '''HDMI (YCbCr444)''': 24-bit YCbCr 4:4:4 (Rec. 601) output with audio and auxiliary Infoframe packets.
 
* '''DVI''': 24-bit full range RGB output. Required if target display does not support HDMI.
 
 
 
=== Audio opt. ===
 
 
 
==== Sampling format ====
 
''Sets sampling format for analog audio input.''
 
* '''24bit/48kHz''': Standard format supported by all displays. '''[default]'''
 
* '''24bit/96kHz'''
 
 
 
==== Quad stereo ====
 
''Generates multichannel LPCM audio output where stereo signal is copied into rear speakers.''
 
* '''Off''': Standard 2.0 channel format. '''[default]'''
 
* '''On (4.0)''': 4.0 channel format.
 
* '''On (5.1)''': 5.1 channel format.
 
* '''On (7.1)''': 7.1 channel format.
 
 
 
==== AV1 audio source ====
 
''Selects audio source for AV1.''
 
* '''AV1 (analog)''': Analog audio via SCART. '''[default]'''
 
* '''SPDIF''': Digital audio via Toslink.
 
 
 
=== Scanline opt. ===
 
 
 
==== Scanlines ====
 
''Controls whether emulated scanlines are drawn on top of the picture''
 
* '''Off''': No scanlines drawn '''[default]'''
 
* '''Auto''': Horizontal scanlines are drawn for 240p/288p sources, alternating scanlines are enabled for 480i/576i, no scanlines for other sources
 
* '''On''': Scanlines are drawn for every source according to "Scanline type" option
 
 
 
==== Sl. strength ====
 
* '''6-100%''': Strength of the emulated scanlines '''[default=6%]'''
 
 
 
==== Sl. method ====
 
''Selects the method how scanlines are generated.''
 
* '''Multiplication''': Scanline is generated by multiplying source RGB value '''[default]'''
 
* '''Subtraction''': Scanline is generated by subtracting from source RGB value
 
 
 
==== Sl. LM Bob altern. ====
 
''Controls whether scanline position alternates along with fields of Bob deinterlaced LM modes.''
 
* '''Off''': Scanlines are always mapped to same output lines.
 
* '''On''': Position is tied to field which shows as alternating position in output. Useful for reducing flicker. '''[default]'''
 
 
 
==== Sl. alignment ====
 
* '''Top''': Scanline is drawn on top position of every group of output lines formed from a single input line. '''[default]'''
 
* '''Bottom''': Scanline is drawn on bottom position of every group of output lines formed from a single input line.
 
 
 
==== Scanline type ====
 
* '''Horizontal''': Scanline pattern is drawn on every N output lines (value of N depends on processing mode). '''[default]'''
 
* '''Vertical''': Scanline pattern is drawn on every M output column (value of M depends on processing mode).
 
* '''Horiz. + Vert.''': Combination of horizontal and vertical mode.
 
* '''Custom''': Scanlines are drawn accoring to line-wise and column-wise strength set under Custom Sl.
 
 
 
==== Custom Sl. ====
 
''Enables separate setting of each overlay line and column (line strength takes priority on pixels where it is >0%).''
 
 
 
===== H interval =====
 
''Sets the horizontal interval (in output pixels) in which the column overlay pattern is repeated.''
 
 
 
===== V interval =====
 
''Sets the vertical interval (in output lines) in which the line overlay pattern is repeated.''
 
 
 
===== Sub-line M str =====
 
''Strength for Mth sub-line, 0% disables line overlay.''
 
 
 
===== Sub-column N str =====
 
''Strength for Nth sub-column, 0% disables column overlay.''
 
 
 
=== Post-proc. ===
 
 
 
==== Mask color ====
 
''Sets mask color''
 
* '''Black|Blue|Green|Cyan|Red|Magenta|Yellow|White''': Mask color. '''[default=Black]'''
 
 
 
==== Mask brightness ====
 
''Sets mask brightness (only effective is color is set to non-black). Could be used as a precaution with self-emissive displays to avoid uneven wear.''
 
* '''0-15''': Mask brightness level. '''[default=8]'''
 
 
 
==== BFI for 2x Hz ====
 
''Enables black frame insertion feature for modes where output refresh rate is min. 2x of input. Reducing image persistence can be used to improve motion resolution at the cost of some flicker.''
 
* '''On''': BFI enabled.
 
* '''Off''': BFI disabled. '''[default]'''
 
 
 
==== BFI strength ====
 
''Sets the strength of BFI to trade off motion resolution for improved brightness / reduced flicker''
 
* '''6-100%''': Sets opaqueness of the black mask applied over a duplicated frame. '''[default=100%]'''
 
 
 
=== Settings ===
 
 
 
==== Initial input ====
 
''Sets the input which is automatically activated when device is powered on. If "last used" is selected, id is saved every time input is switched (adding a minor delay) and is automatically selected next time the board is powered on. Test pattern is diplayed regardless of initial input setting until sync is detected on the respective input.''
 
 
 
==== OSD ====
 
''Selects whether OSD rendering is enabled and in which mode. When enabled, Navigation OSD is permanently visible when menu is active and a status OSD is temporarily displayed when input video mode changes.''
 
* '''Off''': OSD is not displayed.
 
* '''Full''': Full OSD is displayed. '''[default]'''
 
* '''Simple''': Simple OSD is displayed.
 
 
 
==== OSD status display ====
 
''Selects how long updated video parameters are shown on the status OSD.''
 
* '''2s''': status shown for 2 seconds.
 
* '''5s''': status shown for 5 seconds. '''[default]'''
 
* '''10s''': status shown for 10 seconds.
 
* '''Off''': Status is not displayed.
 
 
 
==== Reset settings ====
 
''Resets current profile to default values without saving it.''
 
 
 
== Firmware update ==
 
 
 
=== DE10-Nano ===
 
 
 
Eject the SD card and insert in into a computer. Replace DE10-Nano-vd_isl.rbf file on the filesystem with latest [https://github.com/marqs85/DExx-vd_isl/blob/master/board/de10-nano/output_files/DE10-Nano-vd_isl.rbf?raw=true version].
 
 
 
=== Other boards ===
 
 
 
Program latest .jic file on the flash of the development board. Refer to board-specific READMEs in github for more details.
 
 
 
== Firmware changelog and roadmap ==
 
  
 
== Info for developers ==
 
== Info for developers ==
  
 
* [https://github.com/marqs85/DExx-vd_isl github repository]
 
* [https://github.com/marqs85/DExx-vd_isl github repository]

Latest revision as of 21:15, 17 January 2024

Introduction

DExx-vd_isl is video digitizer expansion card for selected Altera/Intel FPGA development boards, primarily DE10-Nano. Most common use scenario is connecting retro video game consoles and home computers to modern displays. The combination of FPGA development board and expansion card has been used in development of OSSC Pro and can be considered OSSC Pro Lite version since aside from more limited connectivity and performance, it shares most major features.

If you're new to the OSSC and scalers/processors in general, you may wish to jump to the quick start guide.

Features

  • Digitizes analog video sources in RGBS, RGBCS (TTL csync), RGBHV and YPbPr formats connected to SCART connector
  • Up to ~110MHz sampling clock supporting up to 720p@60/1080i@60 inputs.
  • Output up to ~165MHz (1920x1080p@60, 1920x1200p@60 etc.)
  • Analog and digital audio inputs via SCART and toslink (DE10-Nano needs a modification for SPDIF support)
  • OSD and optional character display as UI. (compatible LCDs are Newhaven NHD-0216CW & NHD-0220CW)
  • IR control using OSSC remote control.
  • Line multiplication and scaler operating modes
  • Free running and frame locked operation
  • Motion adaptive deinterlacing
  • Low latency (<=40 scanlines in LM mode, ~1 frame in framelocked scaler mode)
  • Various sampling presets for classic consoles and home computers
  • Postprocessing options including scanlines and BFI

Board versions and availability

DIY

PCB and parts for the board can be purchased from known manufacturers (e.g. JLCPCB, OSHPark) and suppliers (e.g. Mouser, Digikey) but at the time of writing it may not be feasible/economical due to component shortages.

Pre-assembled board

Pre-assembled boards are sold worldwide by:

More information & discussion

AV inputs

AV1 (SCART)

The SCART connector of DExx-vd_isl supports a number of video/sync formats. SCART-RGB sources can be connected as-is while other formats require passthru cables/adapters. Input is selected via remote key / OSD input menu and the on-board sync switch. The table below summarizes available inputs, their corresponding remote hotkeys and required position of the sync switch.

Input name Remote hotkey Sync switch position Notes
Test pattern 0 Any Change test resolution with LEFT/RIGHT remote keys or via menu.
AV1_RGBS 1 CSYNC For video level c-sync only. Sync can be also extracted from composite video / luma.
AV1_RGsB 4 SOG Use suitable adapter / SCART cable.
AV1_YPbPr 4 (tap twice) SOG Use YPbPr to SCART passthru adapter. Some suitable adapters are sold online (e.g. this) but most don't include audio jacks.
AV1_RGBHV 7 Any Needs a custom adapter/cable which routes HSYNC to SCART pin 12 and VSYNC to pin 10.
AV1_RGBCS 7 (tap twice) Any For TTL c-sync only. Needs a custom adapter/cable which routes CSYNC to SCART pin 12.

AV input adapter

A custom adapter (shown below) can be used to connect VGA or component input sources. A fully wired SCART cable needs to be connected between the adapter and DExx-vd_isl board. Design and gerbers are available here. DIY kit for the adapter may be released later.

Dexx scart adapter.png

Toslink

The toslink input supports LPCM 44.1/48/96kHz and compressed bitstream (Dolby Digital, DTS) formats. The audio stream is forwarded as-is to HDMI transmitter.

Basic setup & usage

Board installation

DE10-Nano

Insert the board into the GPIO header which is closer to the FPGA so that both HDMI and SCART ports are facing the same direction and plug the 4-pin jumper cable between the boards as shown in the picture. For those who'd like to install the board on the other side, see this thread. If you use standard SCART-RGB sources, flip the red sync switch towards "CSYNC" as pictured.

De10n-conn.jpg

Prepara a dedicated microSD card (>=64MB) by downloading and unzipping latest firmware image and writing it on the card in raw e.g. via Win32 Disk Imager. Subsequent firmware updates can be made by easier fashion, see #Firmware update.

Additional notes (e.g. how to enable SPDIF) are found on the board-specific README.

For anyone experiencing stability issues in scaler mode with v1.4 board, this thread details a suggested fix.

Other development boards

  • C5G
  • DE2-115

Remote control

Default remote control keymap

DExx-vd_isl operates with L336 infrared remote pre-programmed for OSSC. Key functionality is listed below.

  • 0-9: Selects AV source and input format. See remote picture on the side for reference.
  • MENU: Activates/deactivates OSD menu
  • OK: Selects sub-menu or function
  • BACK: Returns to previous menu level or from info page to normal source display page
  • UP/DOWN: Selects next/previous menu option or next/previous input when not in menu.
  • LEFT/RIGHT: Option value -/+
  • INFO: Displays detailed timings of video input and output. Also displays firmware version.
  • SCANLINE_MODE: Hotkey for selecting next "Scanlines" option value
  • SCANLINE_TYPE: Hotkey for selecting next "Scanline type" option value
  • SCANLINE_INT+/-: Hotkeys for adjusting scanline strength
  • LINEMULT_PROC:
  • SAMP_PHASE+/-: Hotkeys for sample phase adjustment
  • ZOOM:
  • PAN:
  • OSD: Toggles between different OSD modes
  • PROFILE_LOAD: Opens quick menu for loading profiles

Getting started

Once DExx-vd_isl has been attached to the development board and source and monitor are connected, power on the development board. A 480p test pattern should show up in the monitor. Turn on the video source and select correct input via remote and sync switch (refer to #AV1 (SCART) table).

The firmware has 2 primary operating modes: line multiplier and scaler. Line multiplier is reminiscent of classic line doublers and OSSC while scaler works more like video processors like VP50 or Framemeister. In general scaler mode offers more flexibility and easier usage via fixed output resolution and (optionally) fixed refresh rate. Some users may prefer to stay with strict multiplication to preserve the original look as much as possible, though. The mode can be switched from "Output opt -> Operating mode" on the menu. Main menu has matching sub-menus for each of the 2 operating modes which are accessible even if the said operating mode is not active. Most important picture processing settings are found under these sub-menus, refer to next section for mode details.

Settings

Refer to OSSC_Pro#Settings

The following settings are not available DExx-vd_isl:

  • Inputs other than AV1
  • Analog sync pre-STC
  • AV4 video in opt.
  • 1080p120 preset
  • 2160p60 preset
  • Extra AV out
  • Pre-ADC gain
  • AV2-4 audio source
  • 3.5mm jack assign
  • Fan PWM
  • Led PWM
  • Load profile (DE10-Nano has only SD load option available)
  • Save profile (DE10-Nano has only SD save option available)
  • Fw. update

The following setting values have limited functionality with DExx-vd_isl:

  • 2x Hz/100Hz/120Hz modes (limited to 720p)
  • 1440p output mode may not be stable on DE10-Nano
  • 2880x2160 modes are not functional

Firmware update

DE10-Nano

Check the existing firmware version by pressing INFO key on remote:

  • v0.58 or earlier: Write the firmware image on SD card as described in DExx-vd_isl#DE10-Nano
  • v0.59 or later: Eject the SD card and insert in into a computer. Replace DE10-Nano-vd_isl.rbf file on the filesystem with latest version.

Other boards

Program latest .jic file on the flash of the development board. Refer to board-specific READMEs in github for more details.

Firmware changelog and roadmap

v0.73

  • aligned with OSSC Pro firmware v0.73

Older versions

v0.67

  • added Reverse LPF option
  • added Hybrid scanlines option

v0.66

  • added X68k presets
  • fixed various P-LM issues

v0.64

  • added interlacing support for A-LM (480p->480i, 576p->576i, 1080p->1080i)
  • fixed A-LM Generic 16:9 for 2560x1440
  • added some A-LM output presets for 576i/p inputs
  • fixed some issues related to downscaling
  • fixed SCL 576i mode mappings
  • optimized scanconverter pipeline performance

v0.62

  • added Auto aspect ratio option
  • added 480i & 576i CRT modes and moved CRT output modes under dedicated option

v0.61

  • added 240p/288p/480p/540p CRT output modes and 1920x1080i mode
  • fixed Pure LM processing for 256col modes
  • fixed some aspect ratio calculations
  • added auto mode for YPbPr source colorspace
  • fixed manual phase adjustment for oversampled modes

v0.59

  • added support for profiles on SD card

v0.57

  • Initial release

Info for developers