In order to provide correct Azimuth movement for AZIMUTH_TOLERANCE values which are less than 1.0, changed the type of the variable work_target_raw_azimuth from an int to a float
FEATURE_SATELLITE_TRACKING: Updated P13 library to have observer.update_location function. Controller code now uses update_location rather than instantiating new Observer objects
Updated hardcoded AO17TEST TLE
Tested FEATURE_MASTER_SEND_AZ_ROTATION_COMMANDS_TO_REMOTE and FEATURE_MASTER_SEND_EL_ROTATION_COMMANDS_TO_REMOTE and fixed issue with link pings (PG) being sent way too often
Coded FEATURE_MASTER_SEND_AZ_ROTATION_COMMANDS_TO_REMOTE and FEATURE_MASTER_SEND_EL_ROTATION_COMMANDS_TO_REMOTE but haven't tested yet
\M command: query moon azimuth and elevation
\U command: query sun azimuth and elevation
Still working on FEATURE_CALIBRATION
Fixed compilation issues with update_time() and set_clock. errors with FEATURE_REMOTE_UNIT_SLAVE, FEATURE_MASTER_WITH_SERIAL_SLAVE (thanks, Razvan Popescu)
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