FEATURE_SATELLITE_TRACKING
Significant updates to next AOS and LOS time calculations. This is some crazy code that throttles the calculation resolution back depending on the amount of time the calculation has been running.
Better handling of TLE loading at boot up and handling a corrupt TLE file
FEATURE_SATELLITE_TRACKING
Significant changes to the satellite data array updating algorithm
More debugging code everywhere
Improved AOS detection consistency
Made it Harder Better Faster Stronger
FEATURE_NEXTION_DISPLAY & FEATURE_SATELLITE_TRACKING
Added vSatNx, vSatOx, and vSatAx API variables which send a list of satellites and their next AOS time
Added NEXTION_NUMBER_OF_NEXT_SATELLITES setting. This determines how many satellites are sent via the vSatNx, vSatOx, and vSatAx API variables
https://github.com/k3ng/k3ng_rotator_controller/wiki/425-Human-Interface:-Nextion-Display for more information
The \X0 command (clear azimuth and elevation calibration / offsets) is now available without FEATURE_MOON_TRACKING and FEATURE_SUN_TRACKING enabled
FEATURE_SATELLITE_TRACKING
The \| list satellites command is now sorted by next AOS time.
FEATURE_SATELLITE_TRACKING
Removed FEATURE_SATELLITE_TRACKING_MULTI_SAT_AOS_LOS. It's all within FEATURE_SATELLITE_TRACKING now. We're not going to get satellite tracking to fit on a Nano, so no need to break out sub-features for memory saving.
Significant updates to the \| (list satellites command). It now displays current az, el, lat, long, next aos, next los, next aos max el, time to next aos, and aos status. Updating is done in the background. This is some cool $41t.
FEATURE_NEXTION_DISPLAY
Fixed bug with vSS2 API variable and Parked and Parking messages
Added OPTION_CLI_VT100 for sending VT100 escape codes. More on this later.
Elimated the need for avr/wdt.h include file
FEATURE_SATELLITE_TRACKING
Refactoring service_calc_satellite_data() to do all satellite az, el, lat, long, next AOS, and next LOS calculations.
Enhanced the satellite[] struct to contain more information. Going to have service_calc_satellite_data() populate this.
FEATURE_NEXTION_DISPLAY
Removed languages from gSC API variable and added two new bit values:
PARK 2048
AUTOPARK 4096
Create new API variable gL for language
ENGLISH 1
SPANISH 2
CZECH 4
PORTUGUESE_BRASIL 8
GERMAN 16
FRENCH 32
FEATURE_SATELLITE_TRACKING
Created FEATURE_SATELLITE_TRACKING_MULTI_SAT_AOS_LOS
Created \& command which prints out the next AOS and LOS for each satellite
FEATURE_SATELLITE_TRACKING
gSC API Variable
This is now the first variable written to the display after initialization
Added additional capability but values
ENGLISH 2048
SPANISH 4096
CZECH 8192
PORTUGUESE_BRASIL 16384
GERMAN 32768
FRENCH 65536
Language Support (rotator_language.h)
NEXTION_GPS_STRING
NEXTION_PARKING_STRING
NEXTION_PARKED_STRING
NEXTION_OVERLAP_STRING
vSS3 API variable deprecated
Parked and Overlap messages move to vSS2 API variable
Change wait time after reboot of Nextion display from 200 mS to 300 mS
FEATURE_SATELLITE_TRACKING
Fixed bug with \# load TLE command not populating satellite list array correctly (Thanks, Adam, VK4GHZ)
FEATURE_NEXTION_DISPLAY
Changed initialization so we don't wait for 200 mS doing nothing while the display initializes after we reset it
Got rid of 1 second delay at start up. There's really no need for it.
FEATURE_SATELLITE_TRACKING
Changed TLE loading routine to store carriage returns as 0xFE in eeprom and eliminated differences with systems that do carriage return
versus carriage return + line feed, however, regardless TLEs cannot be loaded with the Arduino IDE Serial Monitor
as it strips multi-line pasted text in the send window. Argh. You need to use PuTTY on Windows. Screen on *nix works fine.
FEATURE_SATELLITE_TRACKING
Finished \| command to list all available satellites. This will be updated later to show next AOS of each satellite.
Added vS1..vS34 API variables that contain all satellites available for tracking
\$ command will now first search for a literal match of the entered satellite name, and if no match is found, it will match on the first four characters
FEATURE_SATELLITE_TRACKING
Fixed bug with controller locking up upon boot up if previously selected satellite wasn't available in TLEs stored in eeprom
Enhanced TLE storage so unnecessary data in TLE line 1 isn't stored in eeprom, resulting in space savings and allowing more TLEs to be stored
Working on \| command to list satellites available for tracking
FEATURE_SATELLITE_TRACKING
OPTION_DISPLAY_SATELLITE_TRACKING_ALTERNATING now displays "AOS in <time>" and "LOS in <time>".
New API variables:
vADF String[11] Satellite Next AOS Full Date String (YYYY-MM-DD)
vADS String[5] Satellite Next AOS Short Date String (MM-DD)
vATS String[5] Satellite Next AOS Time String (HH:MM)
vLDF String[11] Satellite Next LOS Full Date String (YYYY-MM-DD)
vLDS String[5] Satellite Next LOS Short Date String (MM-DD)
vLTS String[5] Satellite Next LOS Time String (HH:MM)
vALI String[13] Satellite AOS/LOS In String (Examples: "AOS in 1d13h","LOS in 30m12s","LOS in 5s")
There is a bug with the "AOS/LOS in time" function (satellite_aos_los_string()) that only seems to affect HUBBLE, showing negative seconds. Investigating.
FEATURE_SATELLITE_TRACKING
\% command now calculates max elevation for each pass
FEATURE_NEXTION_DISPLAY
vConResult API variable no longer has response code in results from extended backslash commands
FEATURE_SATELLITE_TRACKING
\% command - print upcoming passes for current satellite
\~ command now shows upcoming pass AOS and LOS
\^1 activate satellite tracking command now pre-rotates to satellite next AOS az and el
Added OPTION_DISPLAY_SATELLITE_TRACKING_ALTERNATING - LCD display one line that alternates current satellite az/el, AOS date/time, and AOS az/le
Settings TRACKING_ACTIVE_CHAR and TRACKING_INACTIVE_CHAR deprecated
New settings
OPTION_DISPLAY_SATELLITE_TRACKING_ALTERNATING_TIME_MS 5000
LCD_DISPLAY_SATELLITE_VISIBLE_NOT_TRACKED_CHAR "~"
LCD_DISPLAY_SATELLITE_VISIBLE_TRACKED_CHAR "*"
LCD_DISPLAY_SATELLITE_NOT_VISIBLE_TRACKED_CHAR "."
LCD_DISPLAY_MOON_TRACKING_ACTIVE_CHAR "*"
LCD_DISPLAY_MOON_TRACKING_INACTIVE_CHAR "-"
LCD_DISPLAY_SUN_TRACKING_ACTIVE_CHAR "*"
LCD_DISPLAY_SUN_TRACKING_INACTIVE_CHAR "-"
Added nasabare.txt bare TLE file to Github in tle/ directory
FEATURE_NEXTION_DISPLAY
New API variables:
gGF Integer GPS fix age in mS
vSAT String[16] Current Satellite Name
vTAS String[6] Satellite Azimuth String
vTES String[6] Satellite Elevation String
vTLA String[7] Satellite Latitude String
vTLO String[7] Satellite Longitude String
gMSS has been expanded to include satellite functionality:
gMSS Integer, Bit Mapped Moon, Sun, and Satellite Status
Bit Values
satellite_tracking_active 16
satellite_visible 32
gSC now has a bit mapping for FEATURE_SATELLITE_TRACKING:
gSC Integer, Bit Mapped System Capabilities
Bit Values
SATELLITE 1024
More work on FEATURE_SATELLITE_TRACKING
Added LCD support
Command \! - erase satellite TLE file area in eeprom
Command \@ - print satellite TLE file area from eeprom
Command \octothorpe - load satellite Keplarian elements file into eeprom (copy and paste bare TLE)
Command \$xxxxxxx - change current satellite (xxxxxx = satellite name in stored TLE file)
Added OPTION_DISPLAY_SATELLITE_TRACKING_CONTINUOUSLY to LCD functionality
OPTION_DISPLAY_MOON_OR_SUN_TRACKING_CONDITIONAL changed to OPTION_DISPLAY_MOON_OR_SUN_OR_SAT_TRACKING_CONDITIONAL
Setting LCD_MOON_OR_SUN_TRACKING_CONDITIONAL_ROW changed to LCD_MOON_OR_SUN_OR_SAT_TRACKING_CONDITIONAL_ROW
Under construction documentation https://github.com/k3ng/k3ng_rotator_controller/wiki/707-Satellite-Tracking
After pulling my hair out for two days, I rewrote the satellite tracking to use the P13 library from Mark VandeWettering
\^ command to activate and deactive satellite tracking
\~ command to view satellite tracking status
Lots more work on FEATURE_SATELLITE_TRACKING. It's only outputting AO-7 in debug logs right now.
Pushing to Github in case I get hit by a bus before I finish this.
FEATURE_NEXTION_DISPLAY
Added NOT_PROVISIONED state to gCS Clock Status API variable
Added gX and gY API variables for heading Cartesian coordinates, for future use to drive combined azimuth and elevation gauges
Added DEBUG_PROCESSES
Removed several instances where update_time() was being called unnecessarily. update_time() was consuming about 21% CPU time, now down to about 12%
FEATURE_NEXTION_DISPLAY
Fixed updating of vMAS, vMES, vSAS, and vSES API variables
Fixed degree symbol in vSS1 API variable
Add variable gDP (Integer) - Number of decimal places used in various heading variables (set by DISPLAY_DECIMAL_PLACES)
DISPLAY_DEGREES_STRING is now broken out into LCD_DISPLAY_DEGREES_STRING and NEXTION_DISPLAY_DEGREES_STRING in settings files
Yaesu Help (H command) updated to include missing commands (Thanks, Adam VK4GHZ )
Fixed \I and \J commands when used with no argument so they return current values of azimuth starting point and azimuth rotation capability
Added CONFIG_DIRTY and CONFIG_NOT_DIRTY flags to periodic debug logging
Made resetting of Nextion display upon Arduino boot up more reliable
Bug OPTION_CLOCK_ALWAYS_HAVE_HOUR_LEADING_ZERO and Nextion display (Thanks, Adam VK4GHZ )
Fixed bug with FEATURE_SUN_TRACKING and FEATURE_MOON_TRACKING and Nextion display API variable gMSS (Thanks, Adam VK4GHZ )
In rotator_hardware.h, got rid of serial port class definitions for the GPS, GPS mirror, and remote serial ports, and have one define CONTROL_PORT_SERIAL_PORT_CLASS for the control port (usually the Serial port)
Arduino Leonardo, Micro, and Yún users will need to change CONTROL_PORT_SERIAL_PORT_CLASS in rotator_hardware.h if not using the Serial port as the control port
Changed and reorganize serial port mappins in rotator_settings*.h files
Refactoring of read_azimuth()
In settings files deprecated ROTATE_PIN_INACTIVE_VALUE and ROTATE_PIN_ACTIVE_VALUE; replaced with ROTATE_PIN_AZ_INACTIVE_VALUE, ROTATE_PIN_AZ_ACTIVE_VALUE, ROTATE_PIN_EL_INACTIVE_VALUE, ROTATE_PIN_EL_ACTIVE_VALUE
FEATURE_EASYCOM_EMULATION: Deprecated OPTION_EASYCOM_AZ_QUERY_COMMAND and OPTION_EASYCOM_EL_QUERY_COMMAND. AZ and EL commands without parameters are standard in Easycom 2 protocol, so no need to have as an OPTION
Changed some elevation variables I missed in 2020.06.12.03 from int to float
Updated submit_request() for float heading datatypes
Updated azimuth and elevation readings for float datatypes
LCD_DECIMAL_PLACES setting has been renamed DISPLAY_DECIMAL_PLACES as it also applies to the Nextion display unit and API
FEATURE_DCU_1_EMULATION: Rewrote to comply with published command specification. AI1 and ; commands now implemented
azimuth, raw_azimuth, and elevation variables changed from int to float datatypes
Eliminated HEADING_MULTIPLIER, LCD_HEADING_MULTIPLIER settings related to azimuth, raw_azimuth, and elevation variables being int datatypes
Eliminated FEATURE_ONE_DECIMAL_PLACE_HEADINGS and FEATURE_TWO_DECIMAL_PLACE_HEADINGS
LCD_DECIMAL_PLACES now is only setting need to change number of decimal places displayed