Reference Guide - IanSB/RGBtoHDMI GitHub Wiki

Home

:warning: Under Construction

Main Menu

This is the initial menu displayed when the menu button is pressed and can be used to setup RGBtoHDMI for first use and to select all the other menu options

images/reference/main.png

Main options (sub menus described below)

Save Configuration

Saves any customisations for the currently selected configuration of the currently selected profile

Restore Default Configuration

Removes any customisations for the currently selected configuration of the currently selected profile

Auto Calibrate Video Sampling

Fine tunes the sampling phase for best image quality (also available by long press of SW3)

Test monitor for 50Hz support

Some monitors will work at 50hz even if their display information indicates they don't so you can use this option to test that
Select and follow the on screen prompts

Resolution

Usually left on Auto but can be used to force a specific resolution

Refresh

Selects the refresh rates as follows:
EDID 50Hz-60Hz - Sets the refresh to 50Hz if the source is 50Hz and the EDID indicates it will work otherwise output 60Hz.
Force 50Hz-60Hz - Always forces the refresh output to 50Hz or 60Hz as appropriate depending on the source.
Force 50Hz-Any - Always forces the refresh output to 50Hz, 60Hz or greater as appropriate depending on the source.
60Hz - Sets the refresh always to 60Hz
50Hz - Sets the refresh always to 50Hz (Doesn't work with Auto resolution so you must first specify a resolution)

Scaling

Values: Auto, Integer/Sharp, Integer/Soft, Integer/Softer, Interpolate4:3/Soft, Interpolate4:3/Softer, InterpolateFull/Soft, InterpolateFull/Softer

"Integer" scaling will map each input pixel to an integer number of output pixels (e.g. 2x4) and this gives a very sharp image. It may, however, result in black borders around the source image. If there is no suitable integer relationship between the source resolution and the monitor resolution you may end up with a small or distorted image with very large black borders.

The best results for Integer scaling with higher resolution computers like BBC, Amstrad CPC or IBM PC are obtained with monitors of 1920x1080, 1920x1200, 1680x1050 or 1600x1200 resolution. If you are using a monitor with a lower resolution the "Interpolate 4:3" options (see below) are recommended and will be automatically selected by "Auto" mode.

Integer scaling may be suitable at lower monitor resolutions if you are using a source with a lower resolution like the ZX80/81, Spectrum, Atom or Dragon/Tandy.

"Interpolate 4:3" scaling reduces or eliminates any black borders by allowing scaling by a non-integer number of pixels using interpolation, while still preserving the source aspect ratio. However, if the source is 4:3 and the monitor is 16:9, there will still be vertical black bars on either side of the source image.

"Interpolate Full" allows arbitrary scaling without any attempt to preserve aspect ratio. The source image will fill all of the display, but will likely appear too stretched if the monitor is not 4:3.

Saved Config

Values: Primary / Alt1 / Alt2 / Alt3 / Alt4
Allows up to 5 different configurations for each profile. e.g. this could be used to store the calibrations for several different BBC micros

Profile

Displays the current profile selected by the Select Profile menu
You can also use thia option to quickly change to other profiles within the same CPLD firmware but this option is deprecated and might be removed.
Normally you should use the Select Profile menu (see below)

Auto Switch

Values: Off / Sub-Profile Only / Sub + BBC Mode7 / Sub + Vsync / Sub + Apple IIGS / Sub + AppleIIGS + Manual / Sub + Manual
This controls the switching of sub-profiles and timing sets
Sub Profiles are a group of profiles with different timings that are all stored in a single profile folder.
Timing sets are different values for the geometry and sampling menus. Each profile or sub-profile can have up to two timing sets.

Off = No sub-profile or timing set switching
Sub-Profile Only = Auto select the sub-profile that matches the incoming signal. e.g. 50Hz or 60Hz profile
Sub + BBC Mode7 = as Sub-Profile Only but also switch between the two timing sets depending if BBC mode7 is detected
Sub + Vsync = as Sub-Profile Only but also switch between the two timing sets depending if Vsync is high or low
Sub + Apple IIGS = as Sub-Profile Only but also switch between the two timing sets depending if Vsync has activity or not
Sub + AppleIIGS + Manual = as Sub + Apple IIGS but also switch between the two timing sets by pressing SW3
Sub + Manual = as Sub-Profile Only but also switch between the two timing sets by pressing SW3

Sub-Profile

Shows which sub-profile has been auto selected. You can also manually select the sub-profile when Auto Switch is set to off but that change is not saved and should only be used for testing or setting up profiles, not regular use.

Timing Set

Values: Set1 / Set2
Shows which timing set is in use and can also be used to switch between them instead of SW3
Note this option is only displayed when Auto Switch is set to Manual.

Button Reverse

Values: Off / On
Reverses the direction of short button presses in the menu in single button mode
This option is only displayed in single button mode.

Select Profile

Used to select the desired profile. Select the option, choose the computer sub-category and then choose the desired computer profile.
Profiles that will work with the current CPLD firmware are shown without prefix.
Profiles that require reprogramming of the CPLD firmware are shown with the appropriate prefix such as [RGB] [BBC] [YUV]

Sub Menus:

Info Menu

This menu allows various information to be displayed and also allows rebooting.

images/reference/info.png

Source Summary

Displays technical information about the video source and the Pi's frame buffer.
images/reference/info_source_summary.png

System Summary

Displays technical information about the system including CPLD version and Pi clocks etc. images/reference/info_firmware_version.png

Calibration Summary

Displays current calibration summary
images/reference/info_cal_summary.png

Calibration Detail

Displays current calibration detail if available
images/reference/info_cal_details.png

Calibration Raw

Displays current calibration raw data if available
images/reference/info_cal_raw.png

Credits

Displays credits
images/reference/info_credits.png

Reboot

Selecting will reboot the Pi.
Useful if the hat is plugged into a Pi which doesn't have the reset header fitted or available

Palette Menu

Sets palette preferences

images/reference/palette.png

Palette

Selects which palette is use to display the current computer e.g RGB RGBI RrGgBb etc.

Output Colour

Values: Normal / Monochrome / Green / Amber

Changes the output to simulate a monochrome, green or amber monitor.

Output Invert

Values: Normal / RGB/YUV / G/Y

Inverts either all three RGB/YUV video signals or just the Green/Y signal.

Border Colour

Values: 0-255

Changes the border colour (the area of the screen not being written to by the capture code).
Values of 128-255 fill the whole screen and this is used for the colour test profile.

Brightness

Contrast

Gamma

Saturation

Tint

All the above allow the output image to be adjusted

Palette Control

Values: Off / In Band Commands / CGA NTSC Artifact / Mono NTSC Artifact / Auto NTSC Artifact / Commodore 64 YUV / Atari GTIA YUV / 4 Bit Lumacode / 6/8 Bit Lumacode / 8 Bit Lumacode

In Band Commands allows the computer to reprogram the palette by sending special pixel combinations.

NTSC Artifacting simulates the false colour effects used on NTSC systems to generate colour from a monochrome source.
The Auto option detects the colour burst to turn artifacting on and off.

Commodore 64 YUV - For c0pperdragon's C64 YUV converter and also supports PAL artifacts

Atari GTIA - decodes 256 Atari colours from c0pperdragons's YUV converter

4 Bit Lumacode / 6/8 Bit Lumacode / 8 Bit Lumacode supports c0pperdragon's lumacode protocol for getting bit perfect digital data out of computers that only generate composite colour video in their video chips.

4 Bit Lumacode also supports PAL Artifacts

Artifact Colour

Values: On / Off

Manually turns NTSC or PAL artifacting on and off

NTSC Phase

Values: 0 / 90 / 180 / 270

Selects which NTSC quadrant the artifact colours use. This should be adjusted until the artifact colours look correct.

NTSC Type

Values: New CGA (Zero2W) / New CGA (Zero2W) / Apple (Zero2W) / Simple (Old Code)

Selects the NTSC artifact emulation type when used on a Zero2W.

NTSC Quality

Values: Soft / Normal / Sharp

Selects the artifact quality: Adjust for personal preference.

PAL Odd Line

Values: Off / Blended Colours / All Colours

Simulates the Odd line offset for PAL artifacts on the Commodore 64.

PAL Odd Line Level

Values: -180 to 180

Phase shift for the Odd line offset for PAL artifacts on the Commodore 64.

Preferences Menu

Sets user preferences

images/reference/preferences.png

Scanlines

Values: Off / On

Turns scanlines on and off.
NOTE Scanlines will not be visible when the menu is on screen.

Scanline Level

Sets the intensity of the scanlines.
0 = black, 15 = very slightly dimmed compared to the non-scanlines.

Values: 0-15

Swap Aspect 625<>525

Values: Off / On

When enabled changes the output aspect ratio of 625 to look like 525 and vice versa (depending on the source) This will only work with some profiles such as Apple II, Amiga, Atari and Commodore 64

Crop Border (Zoom)

Values: 0% to 100%

Crops the border size of the capture area.

0% = no cropping 100% = crop to the minimum size from the geometry menu

With "Integer" scaling, this simply crops off the excessive border but leaves the scaling unchanged.
With "Interpolated" scaling, the border area is cropped off and the new cropped area is scaled to fill the screen so it acts like a zoom function.

Teletext Deinterlace

Values:

  • None
  • Simple Bob
  • Simple Motion 1
  • Simple Motion 2
  • Simple Motion 3
  • Simple Motion 4
  • Advanced Motion

Determines the algorithm used to deinterlace teletext displays such as the BBC micro's mode 7.
Simple Bob used the "bob" algorithm which introduces vertical shimmer.
Simple Motion uses 25Hz motion detection and the level determines the tradeoff between weaving and fizzing artifacts (1 = most "weave", least "fizz", 4 = least weave, most "fizz").
Advanced Motion should be used for best results and has no weave at all with minimal "fizz". The other options are only required for earlier CPLD versions prior to v3.0.

Normal Deinterlace

Values: None (Weave) / Simple BoB

Selects the deinterlacing technique for non-teletext interlaced sources

Teletext Scaling

Values: Even / Uneven (3:2>>4:3)

Converts a 3:2 teletext image to 4:3.
When using integer scaling, the BBC's mode 0 will normally fit on the screen with a 4:3 image but due to the different (12Mhz) pixel clock of teletext it will fit onto the screen with a 3:2 aspect ratio.
Enabling the "Uneven (3:2>>4:3)" will squash the horizontal resolution of teletext so that it has a 4:3 aspect ratio to match the other modes.
When using "Integer/sharp" scaling this can result in some unevenness in teletext characters.

Normal Scaling

Values: Even / Uneven (3:2>>4:3)

Converts a 3:2 progressive image to 4:3
Same as Teletext Scaling but for non-teletext modes.
This option will only have an effect on 3:2 screens and is generally only useful for the Camputers lynx and Oric which have 6 Mhz pixel clocks.

Drop Frame (25/30Hz)

Values: Off / On

Enables or disables alternate frame dropping for a "film" effect

ScreenCap Size

Values: Normal / Full Screen / 4:3 Crop / Full 4:3 Crop

The Pi can capture a frame of the displayed video and write it to the SD card as a PNG file and this setting controls the size and shape of the screencap:
Normal - captures with screen aspect ratio usually at half size
Full Screen - captures with screen aspect ratio at full screen size
4:3 Crop - captures with 4:3 aspect ratio usually at half size
Full 4:3 Crop - captures with 4:3 aspect ratio at full screen size

YUV Pixel Double

Values: Off / On

Enables or disables alternate pixel doubling which can make dotted fonts like the Ohio Superboard into solid fonts

Integer Aspect

Values: Normal / Maximise

When set to Maximise, Integer scaling will try to fill the screen and not be contrained by the pixel aspect ratio settings in the geometry menu

Powerup Message

Values: Off / On

Enables or disables the power up message that shows the current resolution, refresh, interface, scaling and profile

Settings Menu

Adjusts setting that are generally left unchanged images/reference/settings.png

Font Size

Values: Always 8x8 / Auto 12x20 4bpp / Auto 12x20 8bpp

There are two fonts used by the software, a small 8x8 and a larger 12x20.
Always 8x8 will always use the 8x8 font.
Auto 12x20 4bpp will use the 12x20 font in 4bits per pixel modes but switch to the 8x8 font if the text won't fit on the screen. In 8 bits per pixel mode the 8x8 font is always used.
Auto 12x20 8bpp will use the 12x20 font in both 4 and 8 bits per pixel modes but switch to the 8x8 font if the text won't fit on the screen.

V Sync Indicator

Values: Off / On

Turns on a red bar which shows the phase relationship between the input video signal and the Pi's video output. If the bar is not moving it means the two are locked together.

Genlock Mode

Values: On (Locked) / Off (Unlocked)

On (Locked) means the Pi's video output is locked to the source video. This is the normal mode of operation and is used to keep the video in sync and prevent tearing or glitching of the video signal. It also means the lag (delay between input and output) can be kept to around 4 milliseconds because once genlocked, the phase relationship is arranged so that the Pi reads the video out of the frame buffer almost immediately after it has been written by the capture code.

Off (Unlocked) means the Pi runs independantly of the video source. This will result in tearing unless the number of buffers is increased to 3 or more which will significanly increase lag.

The led next to SW1 on the board indicates the genlock state:
Off = Unlocked
Flashing = Locking in progress
On = Locked

Periodically the Pi will need to re-lock to the source and this is indicated by brief flashing of the led.

If the led continues flashing it means the Pi can't lock to the source which is usually due to the input frame rate not being the same as the Pi's output frame rate.

If you have to use a monitor that can't run at the source's frame rate then switching Genlock to off will stop the flashing

Genlock Line

Values: 35-140

This sets the position of the red bar and this should generally be towards the top of the screen to minimise lag.

Genlock Speed

Values: Slow (333PPM) / Medium (1000PPM) / Fast (2000PPM)

Controls the rate at which the Pi locks to the video source.
If your monitor blanks briefly during genlocking (when the led is flashing) then try reducing the genlock speed.

Genlock Adjust

Values: -5% to +5% / Full Range

Controls the maximum adjustment of the Pi's video output when genlocking.

-5% to +5% limits the adjustment range to those values.
e.g. if the Pi is set to 50hz output it will only adjust between 47.5Hz and 52.5Hz so if the source is 60Hz it will never lock and you will get a warning on the menu status line. (In such a case the Pi's video output should be switched to 60Hz)

Full Range allows the Pi to lock to any frequency so it would change the 50Hz to 60Hz. This option is not normally recommended as it can result in very non-standard video outputs that the monitor will be unable to display.

Num Buffers

Values: 1 to 4

Controls the number of frame buffers used to buffer the video signal. Settings 2 to 4 add 1 to 3 frames of lag respectively to the output.
The default is 1 and it is only useful to use other options to prevent tearing if genlock is disabled.

HDMI Mode Detect

Values: Auto / Manual

Enables or Disables Auto detection of DVI or HDMI monitors

Manual Mode

Values: DVI Compatible / HDMI (Auto RGB/YUV) / HDMI (RGB Limited) / HDMI (RGB Full) / HDMI (YUV Limited) / HDMI (YUV Full)

Selects the type of DVI or HDMI output when HDMI Mode Detect set to manual

HDMI Grey Standby

Values: Off / On

Turns off the HDMI output if the computer is displaying a grey screen with RGB values 0xAAA This only works in 12 bit per pixel modes and can be used with the Amiga Vampire and a priority HDMI switcher to automatically switch between the two HDMI sources.

Return Position

Values: Start / End

Sets the position of the Return menu option to the start or end of each menu.

TODO: We should drop this from the OSD, as it gets save per-profile wich is very confusing

Overclock CPU

Overclocks the CPU in Mhz

Overclock Core

Overclocks the Core in Mhz (This is the only setting that usually makes any difference as it speeds up GPIO reads)

Overclock SDRAM

Overclocks the SDRAM in Mhz

Debug

Switches on vertical lines in the video capture area, used to check alignment.

Update CPLD Menu

Allows manual reprogramming of the CPLD although this is now mainly done automatically via the Select Profile Menu.

Geometry Menu

Sets the capture area sampling size, clock and sync etc.
images/reference/geometry.png

Setup Mode

Values: Normal / Set Min/Offset / Set Maximum / Set Clock/Line / Fine Set Clock

This setting makes it easier to setup the associated values below.
When setting the offset and minimum values, select "Set Min/Offset" which reduces the capture area to the minimum values and you can adjust these 4 values so that exactly the screen output of the source is captured.

Similarly select "Set Maximum" before adjusting the maximum values as this forces the capture area to the maximum values

Select "Set Clock/Line" when setting the clock and line values as this disables the clock tolerance which is required when making clock and line adjustments. The clock is adjusted in 1000Hz increments

Finally "Fine Set Clock" changes the clock increment to 1

This setting is automatically returned to "Normal" when you leave the geometry menu.

H Offset

Values: 0-512

Controls the horizontal position of the capture area

V Offset

Values: 0-512

Controls the vertical position of the capture area

Min H Width

Values: 100-1920

Sets the minimum number of horizontal pixels to capture. This is normally set to the number of pixels output by the source computer at it's highest resolution.
e.g. for a BBC micro this would be 640.

Min V Height

Values: 100-1200

Sets the minimum number of vertical pixels to capture. This is normally set to the number of pixels output by the source computer at it's highest resolution.
e.g. for a BBC micro this would be 256.

Max H Width

Values: 150-1920

Sets the maximum number of horizontal pixels to capture. This is normally set to a larger value that covers the border area and that usually results in a 4:3 ratio with the max vertical height for square pixels or 8:3 ratio with 1:2 pixels like the BBC micro.
e.g. for a BBC micro this would be 768.

Max V Height

Values: 150-1200

Sets the maximum number of vertical pixels to capture. This is normally set to a larger value that covers the border area and that usually results in a 4:3 ratio with the max horizontal width for square pixels or 8:3 ratio with 1:2 pixels like the BBC micro.
e.g. for a BBC micro this would be 288 (768x288 = 8:3).

H Pixel Aspect

Values: 0-8

Sets the horizontal pixel aspect ratio (not the screen aspect ratio)
This is used to determine the integer scaling ratio. If it is set to 0, integer scaling will try to fill as much of the screen as possible without maintaining a fixed aspect ratio.
e.g. for a BBC micro this would be set to 1 (1:2 aspect pixels)
When you adjust this value some helper info is displayed on the status line

V Pixel Aspect

Values: 0-8

Sets the vertical pixel aspect ratio (not the screen aspect ratio)
This is used to determine the integer scaling ratio. If it is set to 0, integer scaling will try to fill as much of the screen as possible without maintaining a fixed aspect ratio.
e.g. for a BBC micro this would be set to 2 (1:2 aspect pixels)
When you adjust this value some helper info is displayed on the status line

FB Size

Values: Normal / Double Height / Double Width / Double Width+Height

The frame buffer is normally set to a value between the minimum and maximum values above but sometimes it is useful to double the size of the frame buffer vertically, horizontally or both as that can improve the quality of the scaled output. Setting this option doubles the size of the buffer in the appropriate direction.
e.g the BBC micro with 640x256 uses the double height option for a frame buffer of 640x512. Smaller resolutions like the Atom or Spectrum should used both.
Also if you want to use scanlines then Double Height must always be enabled.

FB Bits/Pixel

Values: 4 / 8 / 16

Sets the frame buffer to use 4, 8 or 16 bits per pixel. If you are capturing 12 bits per pixel this should be set to either 8 or 16 bits per pixel. If you are capturing 6 bits per pixel this should always be set to 8 bits per pixel. If you are capturing 3 bits per pixel this can be set to 4 or 8 bits per pixel.

Clock Frequency

Values: 1000000 - 40000000

i.e. 1MHz to 40MHz

Sets the pixel clock frequency used to sample the incoming video.
Starting to adjust this value automatically sets the setup mode to "Set Clock/Line"
When you adjust this value some helper info is displayed on the status line

Line Length

Values: 100-5000

Sets the number of clock cycles per video line on the incoming video.
Starting to adjust this value automatically sets the setup mode to "Set Clock/Line"
When you adjust this value some helper info is displayed on the status line

Clock Tolerance

Values: 0-100000

Sets the range of adjustment in PPM of the above clock frequency when locking to the incoming video.
If the adjusted clock is outside this range then the previous frequency or default frequency is used. This allows software that creates non-standard video timings to work. Normally in the range 4500 - 25000 depending on the source.
When you adjust this value some helper info is displayed on the status line

Lines per Frame

Values: 250-1200

Sets the number of lines per field/frame of the incoming source.
e.g. 312 for PAL 50 Hz sources
When you adjust this value some helper info is displayed on the status line

Sync Type

Values: -H-V / +H-V / -H+V / +H+V / Composite / Inverted

Sets the sync type and polarity of the incoming video source

Vsync Type

Values: Auto / Interlaced / Interlaced 160uS Vsync / Non Interlaced / Flywheel

Sets the vertical sync type used by the source.
Auto will switch between the two interlaced types The Flywheel setting should be used when vertical sync pulses are generated by RC time constants.
e.g. UK101, Superboard, TRS80

Video Type

Values: Progressive / Interlaced / Interlaced Teletext

Sets the type of video used by the source. Most sources are progressive except for teletext which uses interlaced video.

Pixel Sampling

(OLD CPLDs ONLY) Values: Normal / Odd / Even / Half Odd / Half Even

This option is not shown in the menu with latest CPLDs and is used by old CPLDs to sample lower resolution sources like the Atom

Sampling Menu (3 BIT & 6 BIT TTL digital inputs)

This menu varies when used with a BBC micro depending on the video mode.

In mode 7 the following options are available:
images/reference/sampling_ttl_mode7.png

In other BBC modes and with all other supported computers the following options are displayed:
images/reference/sampling_ttl.png

Setup Mode

Values: Normal / Set Delay

This setting makes it easier to setup the Delay value.
Selecting "Set Delay" reduces the capture area to the minimum values and you can adjust the delay value so that the video exactly lines up with the capture area.

This setting is automatically returned to "Normal" when you leave the sampling menu.

Sampling Phase

Values: 0-X

This adjusts the video sampling point and it can be changed to eliminate any noise in the video signal. This value is automatically set by using the "Auto Calibrate Video Sampling" option in the main menu or using the shortcut calibration on the one of the buttons. The range depends on the Clock Multiplier setting below.

A-F Phase

Values 0-7

These offsets are available in BBC mode 7 teletext only and can be used to fine adjust the sampling when used with the non-symmetrical 12 Mhz pixel clock used in that mode.

Half Pixel Shift

Values: Off / On

This setting adds an additional sampling delay of half a pixel. It is set as required during Mode 7 auto calibration if the optimal sampling point is at one extreme of the range. For example, if the sampling point is 0-1 or 6-7, then this setting will be enabled to shift the sampling point to 2-5 (i.e. in the middle of the range). This gives scope for incremental adjustment of the individial A-F sampling offsets, without any risk of them reaching the limits.

Clock Multiplier

With the BBC CPLD:
Values: x6, x8, x12, x16

With the RGB CPLD:
Values: x3, x4, x6, x8, x10, x12, x14, x16

With the YUV CPLD the multiplier is fixed at x8

The pixel clock is multipled by the above values to set the master sampling clock.
This also changes the range of the sampling phase which will be from 0 to one less than the multiplier value.
Increasing the multiplier increases the sampling accuracy and reduces jitter but setting it to too high a value will overclock the CPLD and cause it to malfunction. Generally the the value of the pixel clock times the multiplier value should be kept below around 150Mhz.

Pixel H Offset

Values: 0 to 15

Adjusts the fine horizontal position of the capture area that has been set in the Geometry menu.
When used with a BBC micro this value is set automatically as part of the "Auto Calibrate Video Sampling" option.

Sync Edge

Trailing / Leading / Leading with delay

Selects which Edge of the sync pulse to trigger sampling
Trailing = Trailing edge of the hsync pulse
Leading = Leading edge of the hsync pulse
Leading + Delay = trigger off the leading edge of the hsync pulse plus a delay. This option is only available in 3bpp mode and is used when Hsync pulses are wider than the blanking and start / end in active video. This happens with some built in monitors which use separate H and V syncs such as the CRTC PETs and the Apple Lisa.

Sync on G/V

In the 6-12 BIT board when set to on, sync is sourced from the Vsync input rather than the normal sync input. This is primarily to support sync on green with the analog board.

Sample Mode

Values: 3 Bits Per Pixel / 6 Bits Per Pixel / 9 Bits (V sync) / 9 Bits (Bits 0-2) / 9 Bits (Bits 1-3) / 12 Bits per pixel / 6x2 Mux (12BPP) / 6 Bits (4 Level) / 1 Bit Per Pixel

Changes the type of sampling:
3 Bits Per Pixel = 3 Bit sampling.
6 Bits Per Pixel = 6 Bit sampling.
9 Bits (V sync) = 9 Bit sampling but the ninth bit uses the Vsync input so only requires the standard 8 bit header
9 Bits (Bits 0-2) = 9 bit sampling using bits 0-2 with bit 3 unused for each of RGB
9 Bits (Bits 1-3) = 9 bit sampling using bits 1-3 with bit 0 unused for each of RGB
12 Bits per pixel = 12 bit sampling
9 Bits 0-2 Blanked = 9 bit sampling using bits 0-2 with blanking on B3
6 Bits (4 level) = use 3 line to 2 bit encoders on the analog card to increase the number of analog levels detected.
1 Bit per pixel = 1 bit sampling
1 Bit On Vsync = 1 bit sampling on the Vsync input

Input Mux

Values: Off / On

In the 3 BIT board when set to on, a TTL buffer chip is switched into the RGB input path to change the logic thresholds from CMOS to TTL which improves logic level detection with some computers such as the Electron although it is not essential.

Sampling Menu (6 BIT RGB analog inputs)

When the analog addon board is fitted, the following additional "DAC" menu options are displayed: images/reference/sampling_analog_rgb.png The DACs are used to set the thresholds for comparators which allow 3 levels of RGB to be discriminated

75R Termination

Values: Off / On

Switches 75 Ohm termination off or on

G Coupling:

Values DC / AC With Clamp

Changes the way the analog input is handled:
DC = the G signal is DC coupled.
AC With Clamp = the G signal is AC coupled via a capacitor and clamp circuit.
Note the R and B signals are always DC coupled.

Generally, only the DC modes should be used with RGB signals as the AC option is primarily for use with YUV sources.
If AC coupling is selected, the DAC-G setting will have to be adjusted appropriately.

DAC-A: G Hi

Values: 0 to 255 / Disabled

Sets the voltage of the highest green level above black

DAC-B: G Lo

Values: 0 to 255 / Disabled

Sets the voltage of the lowest green level above black

DAC-C: RB Hi

Values: 0 to 255 / Disabled

Sets the voltage of the highest red and blue levels above black

DAC-D: RB Lo

Values: 0 to 255 / Disabled

Sets the voltage of the lowest red and blue levels above black

DAC-E: Sync

Values: 0 to 255 / Disabled

Sets the voltage threshold of the sync input

DAC-F: G/V Sync

Values: 0 to 255 / Disabled

Sets the voltage of the Vsync input which is also connected to the green signal.
If Sync on G/V is set to "on" (see above) this can be used to detect sync on green.

DAC-G: G Clamp

Values: 0 to 255 / Disabled

The G input is clamped using sync tip clamping in AC coupling mode and this sets the clamping voltage level.
For RGB inputs, this is normally set to 0

Unused DAC levels should be set to Disabled

Sampling Menu (6 BIT YUV analog inputs)

When the the CPLD reprogrammed to the YUV version, the following menu options are displayed:

images/reference/sampling_yuv.png The DACs below are used to set the thresholds for comparators which allow 3 levels of YUV to be discriminated.

Setup Mode

Values: Normal / Set Delay

This setting makes it easier to setup the Delay value.
Selecting "Set Delay" reduces the capture area to the minimum values and you can adjust the delay value so that the video exactly lines up with the capture area.

This setting is automatically returned to "Normal" when you leave the sampling menu.

Sampling Phase

Values: 0-15

This adjusts the video sampling point and it can be changed to eliminate any noise in the video signal. This value is automatically set by using the "Auto Calibrate Video Sampling" option in the main menu or using the shortcut calibration on the one of the buttons.

Pixel H Offset

Values: 0 to 15

Adjusts the fine horizontal position of the capture area that has been set in the Geometry menu.

Filter Y

Values: Off /On

Enables noise filtering in the Y channel

Subsample UV

Values: Off / On

Halves the sample rate on the U and V channels (Used on 6847 sources)

Pal Switch

Values: Off / On

Inverts the V (R-Y) signal on alternate lines (Required by 48K Spectrum input)

Sync Edge

Values Trailing / Leading

Sets whether sync timing is taken from the Trailing or Leading edge of the sync pulse This should normally be set to "Trailing" and only set to "Leading" if there is a problem with the trailing edge of the sync pulse. "Leading" is currently only used by UK101, Superboard and Spectrum 48K

Clamp Type

Values Sync Tip / Back Porch Short / Back Porch Medium / Back Porch Long / Back Porch Auto

Switches the type of clamping from sync tip to back porch. Sync Tip Clamping clamps the incoming Y signal to the bottom of the sync pulse Back Porch Clamping clamps the incoming Y signal to the back porch level.
The Auto option automatically selects the right length of back porch for the current sample clock.

Sync on Y/V

Values: Off / On

Used to change the behaviour of the DAC-E: Y/V Sync setting (see below)

Sample Mode

Values: 6 Bits Per Pixel / 6 Bits (4 Level)

Changes the type of sampling:
6 Bits Per Pixel = 6 Bit sampling.
6 Bits (4 level) = use 3 line to 2 bit encoders on the analog card to increase the number of analog levels detected.

75R Termination

Values: Off / On

Switches 75 Ohm termination off or on

Y Coupling:

Values DC / AC With Clamp

Changes the way the analog input is handled:
DC = the Y signal is DC coupled.
AC With Clamp = the Y signal is AC coupled via a capacitor and clamp circuit.
Note the U and V signals are always DC coupled.

If AC coupling is selected, the Clamp type and DAC-G settings will have to be adjusted appropriately.

DAC-A: Y Hi

Values: 0 to 255 / Disabled

Sets the voltage of the highest Y level above black

DAC-B: Y Lo

Values: 0 to 255 / Disabled

Sets the voltage of the lowest Y level above black

DAC-C: UV Hi

Values: 0 to 255 / Disabled

Sets the voltage of the highest U and V levels

DAC-D: UV Lo

Values: 0 to 255 / Disabled

Sets the voltage of the lowest U and V levels

DAC-E: Sync

Values: 0 to 255 / Disabled

Sets the voltage threshold of the sync input

DAC-F: Y/V Sync

Values: 0 to 255 / Disabled

Sets the voltage of the Vsync input which is also connected to the Y signal.
When Sync on Y/V is set to off, this is used to discriminate the Vsync signal on 6847 sources.
When Sync on Y/V is set to on, sync is detected from the Y input

DAC-G: Y Clamp

Values: 0 to 255 / Disabled

The Y input is clamped using sync tip clamping or back porch clamping in AC coupling mode and this sets the clamping voltage level

Unused DAC levels should be set to Disabled

Sampling Menu (Atom)

images/reference/sampling_atom.png

Offset

Values: 0-15

This adjusts the video sampling point and it can be changed to eliminate any noise in the video signal. This value is automatically set by using the "Auto Calibrate Video Sampling" option in the main menu or using the shortcut calibration on the one of the buttons.

Filter Y

Values: Off / On

Enables noise filtering in the Y channel

Filter UV

Values: Off / On

Enables noise filtering in the U & V channels

Create Custom Profile

Simplifies the creation of custom profiles.
This menu can only be entered if valid syncs are detected images/reference/custom.png

Analyse Timing

Should be selected when first trying to create a profile to make some initial adjustments

Pixel Width

Set to the number of pixels used by the source computer

Pixel Height

Set to the number of pixels used by the source computer

Clock Frequency

Set to the pixel clock frequency used by the source computer (if known) Adjusting this value will auto set the Line Length based on the sync timing

Line Length

Set to the number of clock cycles per vide line used by the source computer (if known) Adjusting this value will auto set the Clock Frequency based on the sync timing

H Offset

Adjust to centre the image

V Offset

Adjust to centre the image

Auto Calibrate Video Sampling

Use to select the correct sampling phase once the above values are correct

Custom Profile Num

Values 0 - 9

Used to set the index number for Save and Delete Custom Profile

See also the help menus

Analog board theory of operation

The interface is a collection of comparators and a set of Digital to Analog voltage outputs which are used to set the reference levels for those comparators. Together these effectively form a set of 1 bit Analog to Digital converters which are used to "level slice" the incoming video.

A normal A to D would take an analog input and output a stream of numbers representing the video voltage level as it changes and that would also include any noise in the signal. The comparators in the above 1 bit converters output a logic high or low depending if the incoming voltage is above or below the level set by the DAC connected to each associated comparator.

If you consider the simplest source which is monochrome composite video such as the Ohio Superboard, TRS80 Model I or Apple II the video output on those only has 3 levels: sync level, black level and white level. To extract this information, you set the voltage references on two comparators, one to detect the difference between sync and video and one to detect the difference between black and white and these are then output at TTL levels to feed into the TTL input of RGBtoHDMI in the same way as CGA or EGA signals.

In a normal 1v peak to peak mono video signal the sync is between approx 0v and 0.3v and the video is between 0.3v and 1v so you would set the sync DAC voltage to approx 0.15v and the video (Y) DAC voltage to 0.65v. For the DAC settings, 0 = 0v and 255 = 3.3v and you could calculate the initial values from that although in practice it is easier to vary the values up & down until the input breaks and then set the level half way between those extremes. Unused DACs should be set to Disabled.

For YUV, there are extra comparators for the U & V channels and RGBS mode is also implemented similarly but there is an additional DAC & comparator for the separate sync. In fact there are two comparators for each of the YUV / RGB channels (Lo & Hi) so that they can detect up to 3 levels each and that is enough to discriminate the three video levels on each of the RGB signals on the Spectrum +2A & +3, the Amstrad CPC 464, 664 & 6128 (not 6128 plus) and any system that uses the Motorola 6847 video chip which has 3 levels each of YUV such as Tandy Color Computer, Dragon & Atom. It effectively turns the analog outputs of those sources into a TTL EGA style signal although the TTL levels represent different colours to the EGA standard so you have to select a different palette in the palette menu. (The video is stored in an 8 bit per pixel frame buffer which uses a colour look up table to set the final RGB output colours and those tables are set from the palette menu)

This approach results in a completely noise free output as the signal has effectively been re-quantised to just a few levels and it works extremely well when there is enough difference between the voltage levels of the video source but it won't work at all if the voltage levels are too close together so they can't be reliably separated due to noise or variation between machines.

There is also an optional clamp circuit for any sources that are AC coupled via a capacitor and an additional comparator chip (U7) can be fitted on the back of the analog board which increases the number of detectable levels from 3 to 4 and this can be used to get it working with the TI99/4a and other systems based on the same TI video chip like MSX1 & Colecovision but performance is marginal with those due to the video levels being a bit too close together. Note I think this only works with the PAL version of the TI99/4a which has YUV out as the NTSC version has composite colour video directly out of the video chip.

There is a possibility that the DAC levels might have to be manually tweaked on a per machine basis if there is too much variation in output voltage levels from machine to machine (of the same type) but this would only have to be done once during initial setup similar to the auto calibration of the sampling phase but there haven't been enough different machines tested so far to determine that.

When everything is setup correctly and combined with the pixel accurate sampling of the RGBtoHDMI converter it results in a completely noise free perfectly sampled signal which in most cases is going to be indistinguishable from the output of an emulator.