diff --git a/CLAUDE.md b/CLAUDE.md index 63db0ae..8c71d43 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,7 +14,7 @@ Display should be whole screen. An escape, possibly with the escape key needs to be provided to exit the program and go back to shell. We have to simulate everything as we are not allowed to have an actual radar at -out location because because we are not on the water. +our location because we are not on the water. The proposed location of the radar antenna is at the dock of the Community boating center in Bellingham, Washington. @@ -23,7 +23,7 @@ Location is 48.72° N Latitude and -122.51° W Longitude The proposed maximum range is 15 miles. Selectable ranges should be 2, 5, 10, and 15 miles -The project will be implemented on on a Geekom A8 Max +The project will be implemented on a Geekom A8 Max with AMD AI chip R9-8945HS with 32 GB ram The communications for the SDR radios will be handled by @@ -75,7 +75,7 @@ The following classes would be needed: 2. Operator controls. These feed to control data input to the display class using appropriate mutexes. This would also include updating graticules for changing range on the PPI - scope and changing range and bearing for the a scope + scope and changing range and bearing for the A scope 3. Radar targets from receivers AIS, ADS-B, and UAT @@ -88,7 +88,7 @@ mutexes in order to send anything to the display. Perhaps they could be polled by a dispatcher that will tell each one its turn to send data to the display. The simulator will use ads-b and ais and uat received on airspy -SDR radios communicating with Raspberry pi 4 single board computers +SDR radios communicating with Raspberry Pi 5 single board computers running linux. I plan to have a variety of phony targets simulated in addition to @@ -96,7 +96,7 @@ those received on uat, ads-b, and ais. Note that directions shall be true, not magnetic -Note that shoreline data is from noaa maps +Note that shoreline data is from NOAA maps (NOAA provides free ENC (Electronic Nautical Chart) data in S-57 format covering Bellingham Bay and surrounding waters.) @@ -111,22 +111,21 @@ Major functions: 6. PPI scope handling of the shoreline using some sort of topographical map 7. PPI scope persistence phosphor 8. Rain scatter -9. wave scatter +9. Wave scatter Display colors: 1. A Scope is P1 (same as oscilloscope) 2. A Scope graticule is incandescent color 3. PPI scope active targets including scatters, graticule range rings, shoreline, all p7 phosphor (active white blue) -4. All persistence (also p7 greenish yellow persistence) for PPI scope active targets including +4. All persistence (also p7 greenish yellow persistence) for PPI scope active targets including scatters, graticule range rings, shoreline 5. PPI scope bearing ring and ticks is incandescent color. Coordinates: Please note that all target information furnished to the -display be in local coordinates. Transition to local candidate -from AIS/ADS-B/UAT need to be converted to local coordinates. +display be in local coordinates. Local coordinates have center (0,0) at location of radar base at the community boating center. Maximum coordinate size is 15 miles from the center. @@ -187,15 +186,15 @@ Here are the controls that I am proposing 1. Intensity 2. Focus -3. astigmatism +3. Astigmatism 4. Range selection (for both a scope and ppi scope) for maximum range. Changes range rings on ppi and changes graticule selection on A scope 5. Sensitivity 6. Sensitivity time control STC / sea clutter 7. Bearing A scope: which in the old days uses a servo motor to rotate the antenna. Feedback was with mechanical numbers. I am proposing - to use a small usb run digital display; Size should be no larger - than 1 by 3 inches. PPI Scope: This control can also be for the ppi curser. + to use a small USB digital display; Size should be no larger + than 1 by 3 inches. PPI Scope: This control can also be for the ppi cursor. 8. Magnetron tune 9. FTC / Rain Clutter 10. Off-centering (two controls; one for each axis) @@ -204,7 +203,6 @@ Here are the controls that I am proposing 13. Pulse length selection (short pulse for better range resolution, long pulse for better sensitivity at distance; operator selectable) 14. Pulse repetition frequency -15. Range for selection of maximum range (Please suggest other controls I may have missed.) @@ -212,7 +210,7 @@ Here are the controls that I am proposing Now, for controls, the tentative approach is to use encoders (that do not have end stops so they cannot be broken by visitors at the museum) I will need help on how to implement them. I am guessing a few Raspberry Pis to -handle the encoders. I am thinking of encoders have one common terminal and +handle the encoders. I am thinking of encoders that have one common terminal and a clockwise pulse terminal and a counter clockwise pulse terminal. Let's do this like this. The control handling will be a different class and run @@ -235,7 +233,7 @@ TTF font file; render characters as textured quads in the shader. Communication: -All I know now is that I plan to use a combination of raspberry pi 4 and a Airspy +All I know now is that I plan to use a combination of Raspberry Pi 5 and an Airspy SDR for each of ais, ads-b, and uat. UAT (978 MHz) and ADS-B (1090 MHz) are different frequencies and require separate SDRs, but a single Raspberry Pi 5 is powerful enough to run both dump1090 (ADS-B) and dump978 (UAT) simultaneously with two SDRs on its USB @@ -281,7 +279,7 @@ Order of testing features. 2. Edge graticule on ppi scope (Bearing ticks and numbers) 3. Replaceable graticule on A Scope. Have it update for each different range and hold for 5 seconds for each range -4. PPI scope range rings; both active display and persistance display - test +4. PPI scope range rings; both active display and persistence display - test for each range settings; hold for 5 seconds each 5. PPI scope cursor - test by slowly changing range and bearing 6. PPI scope weather noise - test by changing noise level slowly