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
Hopefully fixed issues with Arduino Leonardo and Micro and serial port classes
Added note on Arduino Leonardo and Micro serial configuration in rotator_hardware.h
Added OPTION_ALLOW_ROTATIONAL_AND_CONFIGURATION_CMDS_AT_BOOT_UP which is disabled by default. By default the controller will ignore at boot up GS-232 commands that start rotation or change the configuration.
Related setting (new): ROTATIONAL_AND_CONFIGURATION_CMD_IGNORE_TIME_MS 5000 (ignore commands the first 5 seconds after boot up)