FEATURE_SATELLITE_TRACKING: I *believe* I fixed the issue with satellite tracking using DEFAULT_LATITUDE and DEFAULT_LONGITUDE rather than GPS-derived coordinates
FEATURE_SATELLITE_TRACKING:
Added \& command to manually invoke recalculation of all satellite tracking data
All satellite data is now recalculated if the clock comes out of FREE_RUNNING state or if the latitude / longitude (current location) changes
All time functionality permanent changed to use TimeLib library
Working on adding Sparkfun u-blox GNSS library (OPTION_GPS_USE_SPARKFUN_U_BLOX_GNSS_LIBRARY)
FEATURE_STEPPER_MOTOR
Removed OPTION_STEPPER_MOTOR_MAX_50_KHZ. Too much overhead from interrupts.
Implemented faster digital writes using digitalWriteFast library (library now included in Github)
Added OPTION_STEPPER_DO_NOT_USE_DIGITALWRITEFAST_LIBRARY to disable digitalWriteFast library use
FEATURE_STEPPER_MOTOR: Added several options to change maximum frequency supported. (Not tested on hardware yet.)
OPTION_STEPPER_MOTOR_MAX_2_KHZ (enabled by default)
OPTION_STEPPER_MOTOR_MAX_5_KHZ
OPTION_STEPPER_MOTOR_MAX_10_KHZ
OPTION_STEPPER_MOTOR_MAX_20_KHZ
DEVELOPMENT_TIMELIB - Have TimeLib integrated with all time-related functionality, including FEATURE_CLOCK, FEATURE_GPS, FEATURE_MOON_TRACKING, FEATURE_SUN_TRACKING, FEATURE_RTC_DS1307, FEATURE_RTC_PCF8583
Place a define for DEVELOPMENT_TIMELIB in your rotator_features file to test
FEATURE_STEPPER_MOTOR and Variable frequency outputs (rotate_cw_freq, rotate_ccw_freq, rotate_up_freq, rotate_down_freq):
Clarified in settings files minimum and maximum values for AZ_VARIABLE_FREQ_OUTPUT_LOW, AZ_VARIABLE_FREQ_OUTPUT_HIGH, EL_VARIABLE_FREQ_OUTPUT_LOW, EL_VARIABLE_FREQ_OUTPUT_HIGH
FEATURE_STEPPER_MOTOR - added code to limit high frequency value to 2000 hertz
Big thanks to Fred, VK2WS!
DEVELOPMENT_TIMELIB - working on recoding clock and time functions to the TimeLib library, in preparation for supporting Teensy RTC
Cleaned up code and pins files to remove az_stepper_motor_direction and el_stepper_motor_direction and throw a compiler error if either are defined. (Use the rotate_* pins instead.)
Reference: b36c5a1d4c
FEATURE_SATELLITE_TRACKING - Fixed another issue with the \! not loading up the AO7-TEST default satellite (Thanks, Karl Jan Skontorp)
FEATURE_NEXTION_DISPLAY - Major improvement in Nextion display startup timing (Thanks, Adam, VK4GHZ)
FEATURE_SATELLITE_TRACKING - Fixed issue with \! command not clearing out satellit array and leaving invalid choices displayed on Nextion display
FEATURE_NEXTION_DISPLAY - Added \?NG command which prompts the rotator controller to send the gSC variable immediately to the Nextion
The satellite, sun, and moon automatic tracking algorithms have been enhanced and have new runtime settings
tracking check interval = the interval in mS the system performs a tracking calculation and decision
rotation interval = the minimum amount of time in mS between rotation initiations
degrees difference threshold = the decimal degrees difference between the current az/el and the desired az/el which must be met or exceed in order to initiate rotation
Both the rotation interval and degrees difference threshold must met in order to initiate rotation.
The rotation interval and/or degrees difference threshold can be set to 0 to disable.
New commands:
\( - show satellite, sun, and moon automatic tracking parameters
\?TSxxxx - set satellite tracking check interval (mS)
\?TUxxxx - set sun tracking check interval (mS)
\?TMxxxx - set moon tracking check interval (mS)
\?TXxxxx - set satellite rotation interval (mS)
\?TYxxxx - set sun rotation interval (mS)
\?TZxxxx - set moon rotation interval (mS)
\?TAx[.]x - set satellite degrees difference threshold
\?TBx[.]x - set sun degrees difference threshold
\?TCx[.]x - set moon degrees difference threshold
Fixed potential issue with AZ_POSITION_ROTARY_ENCODER_DEG_PER_PULSE and EL_POSITION_ROTARY_ENCODER_DEG_PER_PULSE decimal values being truncated
Updated default AO7TEST TLE
(Hopefully) Fixed heading decimal place issues (float vs. int) in FEATURE_AZ_POSITION_HH12_AS5045_SSI, FEATURE_EL_POSITION_HH12_AS5045_SSI, and FEATURE_EASYCOM_EMULATION
FEATURE_AUTOPARK & FEATURE_PARK - raise an error at compile time if FEATURE_AUTOPARK is enabled without FEATURE_PARK rather than silently including FEATURE_PARK
DEBUG_SATELLITE_TRACKING_CALC - fixed compiler error
FEATURE_NEXTION_DISPLAY
Added new bit value to gVS (various statuses): configuration_dirty 65536
FEATURE_AUTOPARK
Cleaned up some code for the \Y command that may have had a bug
Settings Files
setting ANALOG_AZ_FULL_CCW renamed to ANALOG_AZ_FULL_CCW_EEPROM_INITIALIZE
setting ANALOG_AZ_FULL_CW renamed to ANALOG_AZ_FULL_CW_EEPROM_INITIALIZE
setting ANALOG_EL_0_DEGREES renamed to ANALOG_EL_FULL_DOWN_EEPROM_INITIALIZE
setting ANALOG_EL_MAX_ELEVATION renamed to ANALOG_EL_FULL_UP_EEPROM_INITIALIZE
Added additional comments for clarification
FEATURE_NEXTION_DISPLAY
Fixed conflicts between moon, sun, and satellite API variables and issues with gMSS variable
Overlap functionality can now be disabled by commenting out define ANALOG_AZ_OVERLAP_DEGREES in settings file
Setting AZIMUTH_STARTING_POINT_DEFAULT renamed to AZIMUTH_STARTING_POINT_EEPROM_INITIALIZE
Setting AZIMUTH_ROTATION_CAPABILITY_DEFAULT renamed to AZIMUTH_ROTATION_CAPABILITY_EEPROM_INITIALIZE
FEATURE_NEXTION_DISPLAY & FEATURE_PARK
Added vPA and vPE API variables for park azimuth and elevation settings
Added vAT API variable for autopark time setting in minutes
FEATURE_NEXTION_DISPLAY
Added transient user messaging capability for vSS1 and vSS2 via request_transient_message() call
\PA or \PE command from Nextion pushes output to vSS1 in transient message
Now updating software version date based on UTC date, not Eastern US date. G'day, mates! :-)
FEATURE_PARK
The park azimuth and elevation is now stored in the EEPROM configuration
Settings PARK_AZIMUTH and PARK_ELEVATION have been deprecated
The \P command has been enhanced:
\PA[x][x][x] - set the park azimuth
\PE[x][x][x] - set the park elevation
\PA or \PE (no parameter) - report current park azimuth and elevation
\P still initiates park
FEATURE_NEXTION_DISPLAY & FEATURE_SATELLITE_TRACKING
Changing the current satellite on the Nextion display no longer echoes the command output on the control port
FEATURE_CLOCK
Fixed bug with CLOCK_DEFAULT_*_AT_BOOTUP settings not being used at boot up
\O (Oscar) command (set clock manually) will now optionally take seconds in the argument (i.e. \O202008292032 or \O20200829203255)
FEATURE_SATELLITE_TRACKING & FEATURE_CLOCK
The \O (Oscar) command (set clock manually) now resets the satellite data array so it's recalculated using the new time setting
FEATURE_NEXTION_DISPLAY & FEATURE_AUTOPARK
Added an addition bit value to API variable gVS (various statuses), autopark_active 32768
FEATURE_NEXTION_DISPLAY
Enhanced initialization routine to retry if "i'm alive" bytes are not received
Additional logging in DEBUG_NEXTION_DISPLAY_INIT
FEATURE_SATELLITE_TRACKING
Yet another significant update to service_calc_satellite_data() - next AOS and LOS calculations are now accurate within 5 seconds!
FEATURE_SATELLITE_TRACKING
Even more optimizations! It's working great!
FEATURE_NEXTION_DISPLAY
Fixed bug with gMSS API variable introduced with satellite related API variable code
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