adding upside down scope stuff

This commit is contained in:
2026-05-14 07:49:10 -07:00
parent 4a05813d1d
commit 547de7cd62

175
CLAUDE.md
View File

@@ -46,6 +46,13 @@ Use // for single line comments
use /* */ for multiple block comments spanning multiple lines use /* */ for multiple block comments spanning multiple lines
avoid using auto avoid using auto
Please use a settings.h file for defines and variables that I can
change and do a simple re-compile instead of having the ai re write the
code. This is for debugging. For example, I may want to disable the p7 persistance
to troubleshoot the actual target processnig before it goes to persistance,
disable the land and terrain so that I can see the targets alone. Things like
that.
Summary of project: Summary of project:
This is a museum exhibit displaying and providing some interaction This is a museum exhibit displaying and providing some interaction
@@ -127,7 +134,40 @@ hardware; the same physical control can be used for multiple scopes.
Note that the range cursor is different from the maximum range. Maximum range is the maximum Note that the range cursor is different from the maximum range. Maximum range is the maximum
radar range setting and range cursor is the range portion of the ppi cursor. radar range setting and range cursor is the range portion of the ppi cursor.
=========================================================================
RADAR EQUATION (for all radars; note that is different for chain home)
Lets start here by mentioning the radar equation that sets the perceived strength of any
radar echoes, no matter what kind of radar (a scope and ppi scopes)
Summary of radar equation:
The fundamental radar equation describes how much power returns to a radar system
after bouncing off a distant target.
Physically, it follows a "round-trip" journey
of energy: the radar transmits a signal that spreads out as a sphere (losing strength
by the square of the distance, $R^2$), hits a target that reflects a portion of that
energy (the Radar Cross Section, $\sigma$), and that reflection then spreads out
again as a second sphere on its way back (losing another factor of $R^2$).
Mathematically, this results in the received power being inversely proportional to the fourth
power of the distance ($1/R^4$), meaning that if a target moves twice as far away,
the returning signal becomes 16 times weaker. To calculate the final received power
($P_r$), you multiply the transmitted power ($P_t$) by the antenna's ability to
focus that energy (Gain, $G$) and its physical size (Aperture, $A$), then factor
in the target's reflectivity ($\sigma$) and the wavelength of the signal ($\lambda$),
all while dividing by the spreading losses $(4\pi)^3 R^4$.
$$P_r = \frac{P_t G^2 \lambda^2 \sigma}{(4\pi)^3 R^4}$$
Since we had four distinct radar types, and each one has it's own hardware loop gain
that does not change, we can set that as a constant in each radar's target handling shader set.
======================================================== ========================================================
Individual scope informations Individual scope informations
1. Introduction to project. Just text. No scopes. Only one control for entering 1. Introduction to project. Just text. No scopes. Only one control for entering
@@ -158,10 +198,57 @@ Individual scope informations
is darker green at aboutu Hex #004400 is darker green at aboutu Hex #004400
PLease also note that there are no graticules on either the Chain Home a scope nor PLease also note that there are no graticules on either the Chain Home a scope nor
the marine a a scope. the marine a a scope. The only thing on the external plate is the base line (zero signal
which the operator can refer to that is going on (grass, calibration, and signals). It
is an important point of reference. That base line is illuminated on the sides with small
incandescent lamps. It is a different color than the display itself. The incandescent
color is that of the #47 pilot lamp hex #FFB347.
2-1 Chain Home A Scope 2-1 Chain Home A Scope
==========================================================
Downward PIP and mixing calibration pips with target pips and noise grass
Very important. The Chain Home A Scope is upside down. That is, the baseline
is at the top of the display and noise and distance pips and target blips will
go down.
This is done so that the operator can look at the top of the scope for the
base reference. The cone apearance of a target blip (ristime of a signal due
due to non perfect bursts of radio frequency pulses from the transmitters)
can be measured against the calibration pips.
Also note that the calibration pips, the noise floor, and the target pips
are mixed together before being sent to the deflection plates of the tube.
This is a hardware reality of any CRT A-scope: the deflection plates receive
a single voltage, so all sources must be combined into that one signal.
That means that the three sources are summed together before you see them
on the scope. Remember that zero signal is the reference line at the top.
Importantly, the calibration pips are generated by a crystal oscillator and
injected into the video chain AFTER the receiver gain stage. This means
turning the Sensitivity control up or down does NOT change the height of the
calibration pips — only the noise floor and target echoes are scaled by the
receiver gain. This is true for both Chain Home and the Marine A-scope.
For example, if one of the calibration pips is exactly the same distance as
a target blip, that would look like it is extending the target blip. This was
a known operational hazard; operators were trained to account for it.
For your reference, the work inside the shader may be something like:
/* Simulated Summing Amplifier Logic.
Cal pips are outside the sensitivity multiply because they are injected
after the receiver gain stage in the real hardware. */
float receiver_signal = (noise_floor + target_echoes) * sensitivity;
float total_deflection = receiver_signal + calibration_pips;
// Apply to your downward-hanging baseline
float final_y = baseline_y - total_deflection;
==========================================================================
Because the receiving antennas are very large (about 100 feet), the Because the receiving antennas are very large (about 100 feet), the
operator cannot physically move them. operator cannot physically move them.
@@ -193,12 +280,36 @@ Individual scope informations
The range is 200 miles. That is the only range option for this scope. The range is 200 miles. That is the only range option for this scope.
There is no graticule. Photos only show crystal oscillator generated 'pips' for
every 20 miles.
We do need to have those small pips every 20 miles. RADAR EQUATION STUFF FOR CHAIN HOME
Note that the operator cannot change this. This is due to the limitations of
the technology for that era. For Chain Home:
Transmitter Power : 500 KW
Wavelength 12 Meters
Antenna Gain 5 dB
Pulse Width 20 microseconds
Beam Width 150 degrees (floodlight
PRF 25 HZ
Airplane acts as a half wave dipole
Sine based resonance Multiplier in target handling
// Pseudocode for Shader/Logic
float resonance = (targetLength >= wavelength * 0.4 && targetLength <= wavelength * 0.6) ? 1.5 : 1.0;
float final_sigma = base_sigma * resonance;
The 20-Mile Markers: Chain Home used crystal-controlled oscillators to create
fixed reference "pips" every 20 miles. These should be rendered as thin,
vertical spikes that never move, regardless of target sensitivity.
The "Floodlight" Effect: Because the beam is 150° wide, the A-Scope will
show every aircraft in that massive sector simultaneously. The only way to
tell them apart was the range (distance from left) and the Radiogoniometer nulling.
The Waveform Shape: For CH, the pips should be slightly "noisier" than
marine radar. Use a random jitter function in your vertex shader to
simulate the atmospheric noise floor common at 25 MHz.
2-2 Marine A Scope 2-2 Marine A Scope
@@ -229,6 +340,19 @@ Individual scope informations
A photograph for this display show no graticule at all. Only range pips formed by an oscillator. A photograph for this display show no graticule at all. Only range pips formed by an oscillator.
Those oscillator pips are fixed. Range settings do not affect them. Those oscillator pips are fixed. Range settings do not affect them.
Like Chain Home, the Marine A-scope sums noise, calibration pips, and target echoes into a
single signal before the deflection plates — this is a hardware reality of any CRT A-scope.
The calibration pips are injected after the receiver gain stage, so they remain at constant
height regardless of the Sensitivity control. The shader summing follows the same structure:
/* Simulated Summing Amplifier Logic — same pattern as Chain Home.
Cal pips outside sensitivity multiply because they bypass the receiver gain stage. */
float receiver_signal = (noise_floor + target_echoes) * sensitivity;
float total_deflection = receiver_signal + calibration_pips;
// Apply to upward-deflecting baseline (Marine scope is right-side up)
float final_y = baseline_y + total_deflection;
The maximum ranges for this scope are: The maximum ranges for this scope are:
1. 1.5 miles; marker pips every 0.25 miles 1. 1.5 miles; marker pips every 0.25 miles
2. 3.0 miles; marker pips every 0.5 miles 2. 3.0 miles; marker pips every 0.5 miles
@@ -307,12 +431,15 @@ radar echoes, no matter what kind of radar (a scope and ppi scopes)
Summary of radar equation: Summary of radar equation:
The fundamental radar equation describes how much power returns to a radar system The fundamental radar equation describes how much power returns to a radar system
after bouncing off a distant target. Physically, it follows a "round-trip" journey after bouncing off a distant target.
Physically, it follows a "round-trip" journey
of energy: the radar transmits a signal that spreads out as a sphere (losing strength of energy: the radar transmits a signal that spreads out as a sphere (losing strength
by the square of the distance, $R^2$), hits a target that reflects a portion of that by the square of the distance, $R^2$), hits a target that reflects a portion of that
energy (the Radar Cross Section, $\sigma$), and that reflection then spreads out energy (the Radar Cross Section, $\sigma$), and that reflection then spreads out
again as a second sphere on its way back (losing another factor of $R^2$). Mathematically, again as a second sphere on its way back (losing another factor of $R^2$).
this results in the received power being inversely proportional to the fourth
Mathematically, this results in the received power being inversely proportional to the fourth
power of the distance ($1/R^4$), meaning that if a target moves twice as far away, power of the distance ($1/R^4$), meaning that if a target moves twice as far away,
the returning signal becomes 16 times weaker. To calculate the final received power the returning signal becomes 16 times weaker. To calculate the final received power
($P_r$), you multiply the transmitted power ($P_t$) by the antenna's ability to ($P_r$), you multiply the transmitted power ($P_t$) by the antenna's ability to
@@ -325,5 +452,33 @@ $$P_r = \frac{P_t G^2 \lambda^2 \sigma}{(4\pi)^3 R^4}$$
Since we had four distinct radar types, and each one has it's own hardware loop gain Since we had four distinct radar types, and each one has it's own hardware loop gain
that does not change, we can set that as a constant in each radar's target handling shader set. that does not change, we can set that as a constant in each radar's target handling shader set.
RADAR EQUATION STUFF FOR CHAIN HOME
For Chain Home:
Transmitter Power : 500 KW
Wavelength 12 Meters
Antenna Gain 5 dB
Pulse Width 20 microseconds
Beam Width 150 degrees (floodlight
PRF 25 HZ
Airplane acts as a half wave dipole
Sine based resonance Multiplier in target handling
// Pseudocode for Shader/Logic
float resonance = (targetLength >= wavelength * 0.4 && targetLength <= wavelength * 0.6) ? 1.5 : 1.0;
float final_sigma = base_sigma * resonance;
The 20-Mile Markers: Chain Home used crystal-controlled oscillators to create
fixed reference "pips" every 20 miles. These should be rendered as thin,
vertical spikes that never move, regardless of target sensitivity.
The "Floodlight" Effect: Because the beam is 150° wide, the A-Scope will
show every aircraft in that massive sector simultaneously. The only way to
tell them apart was the range (distance from left) and the Radiogoniometer nulling.
The Waveform Shape: For CH, the pips should be slightly "noisier" than
marine radar. Use a random jitter function in your vertex shader to
simulate the atmospheric noise floor common at 25 MHz.
======================================