mirror of
https://github.com/k3ng/k3ng_rotator_controller.git
synced 2025-03-13 15:46:26 +00:00
Merge d4b870fa14f026b6408244525fd3c3e9a4e001ed into fb3a23e9f052d01c7ae498fd91ab5a5c98bce8a1
This commit is contained in:
commit
d5e26abf71
@ -1,5 +1,10 @@
|
||||
# K3NG Rotator Controller
|
||||
|
||||
## Modify version for RemoteQTH USB rotator interface rev.4
|
||||
|
||||
More in [wiki](https://remoteqth.com/w/doku.php?id=usb_rotator_interface_4)
|
||||

|
||||
|
||||
## Introduction
|
||||
|
||||
This is an Arduino-based rotator interface that interfaces a computer to a rotator or rotator controller, emulating the Yaesu GS-232A/B and Easycom protocols which are supported by a myriad of logging, contest, and control programs. It can be easily interfaced with commercial rotator control units. With the addition of a proper capacity power supply and several interface components such as relays, this unit could also serve as a total replacement for a rotator control unit or serve as the basis for a 100% homebrew rotation system. Several azimuth and elevation position sensors including potentiometers, rotary encoders, and I2C devices are supported. The code is very flexible, modular, and easy to read allowing intermediate and advanced experimenters and builders to customize it.
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
||||
|
||||
#define DEFAULT_DEBUG_STATE 0 // 1 = activate debug mode at startup; this should be set to zero unless you're debugging something at startup
|
||||
|
||||
#define DEBUG_DUMP // normally compile with this activated unless you're really trying to save memory
|
||||
// #define DEBUG_DUMP // normally compile with this activated unless you're really trying to save memory
|
||||
// #define DEBUG_LOOP
|
||||
// #define DEBUG_PROCESSES
|
||||
// #define DEBUG_BUTTONS
|
||||
|
@ -20,7 +20,7 @@
|
||||
// #define FEATURE_ETHERNET
|
||||
// #define FEATURE_STEPPER_MOTOR // Requires TimerFive library to be copied to the Arduino libraries directory (If using OPTION_STEPPER_MOTOR_USE_TIMER_ONE_INSTEAD_OF_FIVE below, copy the TimeOne library)
|
||||
// #define FEATURE_AUTOCORRECT
|
||||
// #define FEATURE_TEST_DISPLAY_AT_STARTUP
|
||||
// #define FEATURE_TEST_DISPLAY_AT_STARTUP
|
||||
|
||||
// #define FEATURE_SATELLITE_TRACKING // https://github.com/k3ng/k3ng_rotator_controller/wiki/707-Satellite-Tracking
|
||||
|
||||
@ -29,25 +29,25 @@
|
||||
// #define LANGUAGE_CZECH
|
||||
// #define LANGUAGE_ITALIAN
|
||||
// #define LANGUAGE_PORTUGUESE_BRASIL
|
||||
// #define LANGUAGE_GERMAN
|
||||
// #define LANGUAGE_GERMAN
|
||||
// #define LANGUAGE_FRENCH
|
||||
// #define LANGUAGE_DUTCH
|
||||
|
||||
/* master and remote slave unit functionality */
|
||||
// #define FEATURE_REMOTE_UNIT_SLAVE // uncomment this to make this unit a remote unit controlled by a host unit
|
||||
// #define FEATURE_REMOTE_UNIT_SLAVE // uncomment this to make this unit a remote unit controlled by a host unit
|
||||
|
||||
// #define FEATURE_MASTER_WITH_SERIAL_SLAVE // [master]{remote_port}<-------serial-------->{control_port}[slave]
|
||||
// #define FEATURE_MASTER_WITH_ETHERNET_SLAVE // [master]<-------------------ethernet--------------------->[slave]
|
||||
|
||||
//#define FEATURE_ADC_RESOLUTION12 // 12 bit ADC resolution for Teensy 3.x, Arduino Due Zero MKR families
|
||||
//#define FEATURE_ADC_RESOLUTION12 // 12 bit ADC resolution for Teensy 3.x, Arduino Due Zero MKR families
|
||||
|
||||
/* position sensors - pick one for azimuth and one for elevation if using an az/el rotator */
|
||||
#define FEATURE_AZ_POSITION_POTENTIOMETER //this is used for both a voltage from a rotator control or a homebrew rotator with a potentiometer
|
||||
// #define FEATURE_AZ_POSITION_ROTARY_ENCODER
|
||||
// #define FEATURE_AZ_POSITION_ROTARY_ENCODER_USE_PJRC_LIBRARY // library @ http://www.pjrc.com/teensy/td_libs_Encoder.html
|
||||
// #define FEATURE_AZ_POSITION_ROTARY_ENCODER_USE_PJRC_LIBRARY // library @ http://www.pjrc.com/teensy/td_libs_Encoder.html
|
||||
// #define FEATURE_AZ_POSITION_PULSE_INPUT
|
||||
// #define FEATURE_AZ_POSITION_HMC5883L // HMC5883L digital compass support
|
||||
// #define FEATURE_AZ_POSITION_HMC5883L_USING_JARZEBSKI_LIBRARY // HMC5883L digital compass support using Jarzebski library at https://github.com/jarzebski/Arduino-HMC5883L
|
||||
// #define FEATURE_AZ_POSITION_HMC5883L_USING_JARZEBSKI_LIBRARY // HMC5883L digital compass support using Jarzebski library at https://github.com/jarzebski/Arduino-HMC5883L
|
||||
// #define FEATURE_AZ_POSITION_DFROBOT_QMC5883 // QMC5883 digital compass support using DFRobot library at https://github.com/DFRobot/DFRobot_QMC5883
|
||||
// #define FEATURE_AZ_POSITION_GET_FROM_REMOTE_UNIT // requires FEATURE_MASTER_WITH_SERIAL_SLAVE or FEATURE_MASTER_WITH_ETHERNET_SLAVE
|
||||
// #define FEATURE_AZ_POSITION_ADAFRUIT_LSM303 // Uncomment for azimuth using LSM303 compass and Adafruit library (https://github.com/adafruit/Adafruit_LSM303) (also uncomment object declaration below)
|
||||
@ -60,7 +60,7 @@
|
||||
|
||||
// #define FEATURE_EL_POSITION_POTENTIOMETER
|
||||
// #define FEATURE_EL_POSITION_ROTARY_ENCODER
|
||||
// #define FEATURE_EL_POSITION_ROTARY_ENCODER_USE_PJRC_LIBRARY // library @ http://www.pjrc.com/teensy/td_libs_Encoder.html
|
||||
// #define FEATURE_EL_POSITION_ROTARY_ENCODER_USE_PJRC_LIBRARY // library @ http://www.pjrc.com/teensy/td_libs_Encoder.html
|
||||
// #define FEATURE_EL_POSITION_PULSE_INPUT
|
||||
// #define FEATURE_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB // Uncomment for elevation ADXL345 accelerometer support using ADXL345 library
|
||||
// #define FEATURE_EL_POSITION_ADXL345_USING_ADAFRUIT_LIB // Uncomment for elevation ADXL345 accelerometer support using Adafruit library
|
||||
@ -71,9 +71,9 @@
|
||||
// #define FEATURE_EL_POSITION_INCREMENTAL_ENCODER
|
||||
// #define FEATURE_EL_POSITION_MEMSIC_2125
|
||||
// #define FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER
|
||||
|
||||
|
||||
// And if you are using any display other than a 4 bit LCD, you must also change the feature setting in rotator_k3ngdisplay.h!!!!
|
||||
// #define FEATURE_4_BIT_LCD_DISPLAY // Uncomment for classic 4 bit LCD display (most common)
|
||||
#define FEATURE_4_BIT_LCD_DISPLAY // Uncomment for classic 4 bit LCD display (most common)
|
||||
// #define FEATURE_ADAFRUIT_I2C_LCD
|
||||
// #define FEATURE_ADAFRUIT_BUTTONS // Uncomment this to use Adafruit I2C LCD buttons for manual AZ/EL instead of normal buttons (also set this feature in rotator_k3ngdisplay.h)
|
||||
// #define FEATURE_YOURDUINO_I2C_LCD
|
||||
@ -81,7 +81,7 @@
|
||||
// #define FEATURE_YWROBOT_I2C_DISPLAY
|
||||
// #define FEATURE_SAINSMART_I2C_LCD
|
||||
// #define FEATURE_MIDAS_I2C_DISPLAY
|
||||
// #define FEATURE_FABO_LCD_PCF8574_DISPLAY
|
||||
// #define FEATURE_FABO_LCD_PCF8574_DISPLAY
|
||||
|
||||
// #define FEATURE_NEXTION_DISPLAY // Documentation: https://github.com/k3ng/k3ng_rotator_controller/wiki/425-Human-Interface:-Nextion-Display
|
||||
|
||||
@ -93,19 +93,19 @@
|
||||
// #define FEATURE_AUDIBLE_ALERT
|
||||
|
||||
/* preset rotary encoder features and options */
|
||||
// #define FEATURE_AZ_PRESET_ENCODER // Uncomment for Rotary Encoder Azimuth Preset support
|
||||
#define FEATURE_AZ_PRESET_ENCODER // Uncomment for Rotary Encoder Azimuth Preset support
|
||||
// #define FEATURE_EL_PRESET_ENCODER // Uncomment for Rotary Encoder Elevation Preset support (requires FEATURE_AZ_PRESET_ENCODER above)
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups on rotary encoder pins
|
||||
#define OPTION_INCREMENTAL_ENCODER_PULLUPS // define to enable weak pullups on 3 phase incremental rotary encoder pins
|
||||
// #define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups on rotary encoder pins
|
||||
// #define OPTION_INCREMENTAL_ENCODER_PULLUPS // define to enable weak pullups on 3 phase incremental rotary encoder pins
|
||||
//#define OPTION_PRESET_ENCODER_RELATIVE_CHANGE // this makes the encoder(s) change the az or el in a relative fashion rather then store an absolute setting
|
||||
#define OPTION_PRESET_ENCODER_0_360_DEGREES
|
||||
// #define OPTION_PRESET_ENCODER_0_360_DEGREES
|
||||
|
||||
/* position sensor options */
|
||||
#define OPTION_AZ_POSITION_ROTARY_ENCODER_HARD_LIMIT // stop azimuth at lower and upper limit rather than rolling over
|
||||
#define OPTION_EL_POSITION_ROTARY_ENCODER_HARD_LIMIT // stop elevation at lower and upper limits rather than rolling over
|
||||
// #define OPTION_EL_POSITION_ROTARY_ENCODER_HARD_LIMIT // stop elevation at lower and upper limits rather than rolling over
|
||||
#define OPTION_AZ_POSITION_PULSE_HARD_LIMIT // stop azimuth at lower and upper limit rather than rolling over
|
||||
#define OPTION_EL_POSITION_PULSE_HARD_LIMIT // stop elevation at lower and upper limits rather than rolling over
|
||||
// #define OPTION_EL_POSITION_PULSE_HARD_LIMIT // stop elevation at lower and upper limits rather than rolling over
|
||||
#define OPTION_POSITION_PULSE_INPUT_PULLUPS // define to enable weak pullups on position pulse inputs
|
||||
|
||||
/* less often used features and options */
|
||||
@ -116,7 +116,7 @@
|
||||
// #define OPTION_SERIAL_HELP_TEXT // Yaesu help command prints help
|
||||
// #define FEATURE_PARK
|
||||
// #define FEATURE_AUTOPARK // Requires FEATURE_PARK
|
||||
// #define OPTION_AZ_MANUAL_ROTATE_LIMITS // this option will automatically stop the L and R commands when hitting a CCW or CW limit (settings are AZ_MANUAL_ROTATE_CCW_LIMIT, AZ_MANUAL_ROTATE_CW_LIMIT)
|
||||
#define OPTION_AZ_MANUAL_ROTATE_LIMITS // this option will automatically stop the L and R commands when hitting a CCW or CW limit (settings are AZ_MANUAL_ROTATE_CCW_LIMIT, AZ_MANUAL_ROTATE_CW_LIMIT)
|
||||
// #define OPTION_EL_MANUAL_ROTATE_LIMITS // (settings are EL_MANUAL_ROTATE_DOWN_LIMIT, EL_MANUAL_ROTATE_UP_LIMIT)
|
||||
// #define OPTION_C_COMMAND_SENDS_AZ_AND_EL // uncomment this when using Yaesu emulation with Ham Radio Deluxe
|
||||
// #define OPTION_DELAY_C_CMD_OUTPUT // uncomment this when using Yaesu emulation with Ham Radio Deluxe
|
||||
@ -132,32 +132,32 @@
|
||||
#define OPTION_EL_SPEED_FOLLOWS_AZ_SPEED // changing the azimith speed with Yaesu X commands or an azimuth speed pot will also change elevation speed
|
||||
// #define OPTION_PULSE_IGNORE_AMBIGUOUS_PULSES // for azimuth and elevation position pulse input feature, ignore pulses that arrive when no rotation is active
|
||||
// #define OPTION_BUTTON_RELEASE_NO_SLOWDOWN // disables slowdown when CW or CCW button is released, or stop button is depressed
|
||||
#define OPTION_SYNC_RTC_TO_GPS // if both realtime clock and GPS are present, synchronize realtime clock to GPS
|
||||
// #define OPTION_SYNC_RTC_TO_GPS // if both realtime clock and GPS are present, synchronize realtime clock to GPS
|
||||
|
||||
#define OPTION_DISPLAY_STATUS
|
||||
#define OPTION_DISPLAY_HEADING
|
||||
#define OPTION_DISPLAY_HEADING_AZ_ONLY
|
||||
#define OPTION_DISPLAY_HEADING_EL_ONLY
|
||||
#define OPTION_DISPLAY_HHMM_CLOCK // display HH:MM clock (set position with #define LCD_HHMM_CLOCK_POSITION)
|
||||
// #define OPTION_DISPLAY_HEADING_AZ_ONLY
|
||||
// #define OPTION_DISPLAY_HEADING_EL_ONLY
|
||||
// #define OPTION_DISPLAY_HHMM_CLOCK // display HH:MM clock (set position with #define LCD_HHMM_CLOCK_POSITION)
|
||||
// #define OPTION_DISPLAY_HHMMSS_CLOCK // display HH:MM:SS clock (set position with #define LCD_HHMMSS_CLOCK_POSITION)
|
||||
// #define OPTION_DISPLAY_ALT_HHMM_CLOCK_AND_MAIDENHEAD // display alternating HH:MM clock and maidenhead on LCD row 1 (set position with #define LCD_HHMMCLOCK_POSITION)
|
||||
// #define OPTION_DISPLAY_CONSTANT_HHMMSS_CLOCK_AND_MAIDENHEAD // display constant HH:MM:SS clock and maidenhead on LCD row 1 (set position with #define LCD_CONSTANT_HHMMSSCLOCK_MAIDENHEAD_POSITION)
|
||||
// #define OPTION_DISPLAY_BIG_CLOCK // display date & time clock (set row with #define LCD_BIG_CLOCK_ROW)
|
||||
// #define OPTION_CLOCK_ALWAYS_HAVE_HOUR_LEADING_ZERO
|
||||
#define OPTION_DISPLAY_GPS_INDICATOR // display GPS indicator on LCD - set position with LCD_GPS_INDICATOR_POSITION and LCD_GPS_INDICATOR_ROW
|
||||
// #define OPTION_DISPLAY_DIRECTION_STATUS // LCD N, W, E, S, NW, etc. direction indicator
|
||||
// #define OPTION_DISPLAY_GPS_INDICATOR // display GPS indicator on LCD - set position with LCD_GPS_INDICATOR_POSITION and LCD_GPS_INDICATOR_ROW
|
||||
#define OPTION_DISPLAY_DIRECTION_STATUS // LCD N, W, E, S, NW, etc. direction indicator
|
||||
// #define OPTION_DISPLAY_MOON_TRACKING_CONTINUOUSLY // LCD
|
||||
// #define OPTION_DISPLAY_SATELLITE_TRACKING_CONTINUOUSLY // LCD
|
||||
// #define OPTION_DISPLAY_SATELLITE_TRACKING_ALTERNATING // LCD
|
||||
// #define OPTION_DISPLAY_SUN_TRACKING_CONTINUOUSLY // LCD
|
||||
#define OPTION_DISPLAY_MOON_OR_SUN_OR_SAT_TRACKING_CONDITIONAL // LCD
|
||||
// #define OPTION_DISPLAY_MOON_OR_SUN_OR_SAT_TRACKING_CONDITIONAL // LCD
|
||||
#define OPTION_DISPLAY_VERSION_ON_STARTUP //code provided by Paolo, IT9IPQ
|
||||
// #define OPTION_LCD_HEADING_FIELD_FIXED_DECIMAL_PLACE
|
||||
// #define OPTION_REVERSE_AZ_HH12_AS5045
|
||||
// #define OPTION_REVERSE_EL_HH12_AS5045
|
||||
|
||||
// #define FEATURE_POWER_SWITCH
|
||||
// #define OPTION_EXTERNAL_ANALOG_REFERENCE //Activate external analog voltage reference (needed for RemoteQTH.com unit)
|
||||
#define OPTION_EXTERNAL_ANALOG_REFERENCE //Activate external analog voltage reference (needed for RemoteQTH.com unit)
|
||||
// #define OPTION_SYNC_MASTER_CLOCK_TO_SLAVE // use when GPS unit is connected to slave unit and you want to synchronize the master unit clock to the slave unit GPS clock
|
||||
// #define OPTION_SYNC_MASTER_COORDINATES_TO_SLAVE // use when GPS unit is connected to slave unit and you want to synchronize the master unit coordinates to the slave unit GPS
|
||||
// #define OPTION_DISABLE_HMC5883L_ERROR_CHECKING
|
||||
@ -169,11 +169,11 @@
|
||||
// #define OPTION_SCANCON_2RMHF3600_INC_ENCODER // use with FEATURE_AZ_POSITION_INCREMENTAL_ENCODER and/or FEATURE_EL_POSITION_INCREMENTAL_ENCODER if using the ScanCon 2RMHF3600 incremental encoder
|
||||
// #define OPTION_RESET_METHOD_JMP_ASM_0
|
||||
// #define OPTION_SAVE_MEMORY_EXCLUDE_EXTENDED_COMMANDS
|
||||
// #define OPTION_SAVE_MEMORY_EXCLUDE_BACKSLASH_CMDS
|
||||
// #define OPTION_DONT_READ_GPS_PORT_AS_OFTEN
|
||||
// #define OPTION_SAVE_MEMORY_EXCLUDE_BACKSLASH_CMDS
|
||||
// #define OPTION_DONT_READ_GPS_PORT_AS_OFTEN
|
||||
// #define OPTION_GPS_DO_PORT_FLUSHES
|
||||
// #define OPTION_SEND_STRING_OUT_CONTROL_PORT_WHEN_INITIALIZING // change OPTION_SEND_STRING_OUT_CONTROL_PORT_WHEN_INITIALIZING_STRING in settings file
|
||||
// #define OPTION_SEND_STRING_OUT_CONTROL_PORT_WHEN_INITIALIZING // change OPTION_SEND_STRING_OUT_CONTROL_PORT_WHEN_INITIALIZING_STRING in settings file
|
||||
// #define OPTION_GPS_EXCLUDE_MISSING_LF_CR_HANDLING
|
||||
// #define OPTION_MORE_SERIAL_CHECKS
|
||||
// #define OPTION_STEPPER_MOTOR_USE_TIMER_ONE_INSTEAD_OF_FIVE
|
||||
// #define OPTION_STEPPER_MOTOR_USE_TIMER_ONE_INSTEAD_OF_FIVE
|
||||
// #define OPTION_ALLOW_ROTATIONAL_AND_CONFIGURATION_CMDS_AT_BOOT_UP // if disabled, rotational and configuration commands will be ignored on the serial port for the first 10 second after boot up
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* ------------------------------------- Pin Definitions ------------------------------------------
|
||||
/* ------------------------------------- Pin Definitions ------------------------------------------
|
||||
|
||||
You need to look at these and set them appropriately !
|
||||
|
||||
@ -10,28 +10,28 @@
|
||||
|
||||
/* azimuth pins --------------------- (use just the azimuth pins for an azimuth-only rotator) */
|
||||
|
||||
#define rotate_cw 6 // goes high to activate rotator R (CW) rotation - pin 1 on Yaesu connector
|
||||
#define rotate_ccw 7 // goes high to activate rotator L (CCW) rotation - pin 2 on Yaesu connector
|
||||
#define rotate_cw 8 // goes high to activate rotator R (CW) rotation - pin 1 on Yaesu connector
|
||||
#define rotate_ccw 9 // goes high to activate rotator L (CCW) rotation - pin 2 on Yaesu connector
|
||||
#define rotate_cw_ccw 0 // goes high for both CW and CCW rotation
|
||||
#define rotate_cw_pwm 0 // optional - PWM CW output - set to 0 to disable (must be PWM capable pin)
|
||||
#define rotate_ccw_pwm 0 // optional - PWM CCW output - set to 0 to disable (must be PWM capable pin)
|
||||
#define rotate_cw_ccw_pwm 0 // optional - PWM on CW and CCW output - set to 0 to disable (must be PWM capable pin)
|
||||
#define rotate_cw_ccw_pwm 11 // optional - PWM on CW and CCW output - set to 0 to disable (must be PWM capable pin)
|
||||
#define rotate_cw_freq 0 // optional - CW variable frequency output
|
||||
#define rotate_ccw_freq 0 // optional - CCW variable frequency output
|
||||
#define button_cw 0 // normally open button to ground for manual CW rotation (schematic pin: A2)
|
||||
#define button_ccw 0 // normally open button to ground for manual CCW rotation (schematic pin: A3)
|
||||
#define button_cw A5 // normally open button to ground for manual CW rotation (schematic pin: A2)
|
||||
#define button_ccw A4 // normally open button to ground for manual CCW rotation (schematic pin: A3)
|
||||
#define serial_led 0 // LED blinks when command is received on serial port (set to 0 to disable)
|
||||
#define rotator_analog_az A0 // reads analog azimuth voltage from rotator - pin 4 on Yaesu connector
|
||||
#define rotator_analog_az A7 // reads analog azimuth voltage from rotator - pin 4 on Yaesu connector
|
||||
#define azimuth_speed_voltage 0 // optional - PWM output for speed control voltage feed into rotator (on continually unlike rotate_cw_pwm and rotate_ccw_pwm)
|
||||
#define overlap_led 0 // line goes active when azimuth rotator is in overlap (> 360 rotators)
|
||||
#define brake_az 0 // goes high to disengage azimuth brake (set to 0 to disable)
|
||||
#define brake_az 10 // goes high to disengage azimuth brake (set to 0 to disable)
|
||||
#define az_speed_pot 0 // connect to wiper of 1K to 10K potentiometer for speed control (set to 0 to disable)
|
||||
#define az_preset_pot 0 // connect to wiper of 1K to 10K potentiometer for preset control (set to 0 to disable)
|
||||
#define preset_start_button 0 // connect to momentary switch (ground on button press) for preset start (set to 0 to disable or for preset automatic start)
|
||||
#define preset_start_button A3 // connect to momentary switch (ground on button press) for preset start (set to 0 to disable or for preset automatic start)
|
||||
#define button_stop 0 // connect to momentary switch (ground on button press) for preset stop (set to 0 to disable or for preset automatic start)
|
||||
#define rotation_indication_pin 0
|
||||
#define blink_led 0
|
||||
#define az_stepper_motor_pulse 44 //0
|
||||
#define az_stepper_motor_pulse 0 //0
|
||||
#define az_stepper_motor_direction 0
|
||||
#define az_rotation_stall_detected 0
|
||||
|
||||
@ -39,15 +39,15 @@
|
||||
|
||||
/*----------- elevation pins --------------*/
|
||||
#ifdef FEATURE_ELEVATION_CONTROL
|
||||
#define rotate_up 8 // goes high to activate rotator elevation up
|
||||
#define rotate_down 9 // goes high to activate rotator elevation down
|
||||
#define rotate_up 0 // goes high to activate rotator elevation up
|
||||
#define rotate_down 0 // goes high to activate rotator elevation down
|
||||
#define rotate_up_or_down 0 // goes high when elevation up or down is activated
|
||||
#define rotate_up_pwm 0 // optional - PWM UP output - set to 0 to disable (must be PWM capable pin)
|
||||
#define rotate_down_pwm 0 // optional - PWM DOWN output - set to 0 to disable (must be PWM capable pin)
|
||||
#define rotate_up_down_pwm 0 // optional - PWM on both UP and DOWN (must be PWM capable pin)
|
||||
#define rotate_up_freq 0 // optional - UP variable frequency output
|
||||
#define rotate_down_freq 0 // optional - UP variable frequency output
|
||||
#define rotator_analog_el A1 // reads analog elevation voltage from rotator
|
||||
#define rotator_analog_el 0 // reads analog elevation voltage from rotator
|
||||
#define button_up 0 // normally open button to ground for manual up elevation
|
||||
#define button_down 0 // normally open button to ground for manual down rotation
|
||||
#define brake_el 0 // goes high to disengage elevation brake (set to 0 to disable)
|
||||
@ -57,12 +57,12 @@
|
||||
#endif //FEATURE_ELEVATION_CONTROL
|
||||
|
||||
// rotary encoder pins and options
|
||||
#ifdef FEATURE_AZ_PRESET_ENCODER
|
||||
#define az_rotary_preset_pin1 0 // CW Encoder Pin
|
||||
#define az_rotary_preset_pin2 0 // CCW Encoder Pin
|
||||
#ifdef FEATURE_AZ_PRESET_ENCODER
|
||||
#define az_rotary_preset_pin1 A6 // CW Encoder Pin
|
||||
#define az_rotary_preset_pin2 A2 // CCW Encoder Pin
|
||||
#endif //FEATURE_AZ_PRESET_ENCODER
|
||||
|
||||
#ifdef FEATURE_EL_PRESET_ENCODER
|
||||
#ifdef FEATURE_EL_PRESET_ENCODER
|
||||
#define el_rotary_preset_pin1 0 // UP Encoder Pin
|
||||
#define el_rotary_preset_pin2 0 // DOWN Encoder Pin
|
||||
#endif //FEATURE_EL_PRESET_ENCODER
|
||||
@ -83,8 +83,8 @@
|
||||
#endif // read http://arduino.cc/en/Reference/AttachInterrupt for details on hardware and interrupts
|
||||
|
||||
#ifdef FEATURE_EL_POSITION_PULSE_INPUT
|
||||
#define el_position_pulse_pin 1 // must be an interrupt capable pin!
|
||||
#define EL_POSITION_PULSE_PIN_INTERRUPT 1 // Uno: pin 2 = interrupt 0, pin 3 = interrupt 1 ; Mega: pin 2 = interrupt 0, pin 3 = interrupt 1, pin 21 = interrupt 2, pin 20 = interrupt 3, pin 19 = interrupt 4, pin 18 = interrupt 5
|
||||
#define el_position_pulse_pin 0 // must be an interrupt capable pin!
|
||||
#define EL_POSITION_PULSE_PIN_INTERRUPT 0 // Uno: pin 2 = interrupt 0, pin 3 = interrupt 1 ; Mega: pin 2 = interrupt 0, pin 3 = interrupt 1, pin 21 = interrupt 2, pin 20 = interrupt 3, pin 19 = interrupt 4, pin 18 = interrupt 5
|
||||
#endif // read http://arduino.cc/en/Reference/AttachInterrupt for details on hardware and interrupts
|
||||
|
||||
#ifdef FEATURE_PARK
|
||||
@ -93,16 +93,16 @@
|
||||
|
||||
//classic 4 bit LCD pins
|
||||
#define lcd_4_bit_rs_pin 12
|
||||
#define lcd_4_bit_enable_pin 11
|
||||
#define lcd_4_bit_d4_pin 5
|
||||
#define lcd_4_bit_d5_pin 4
|
||||
#define lcd_4_bit_d6_pin 3
|
||||
#define lcd_4_bit_d7_pin 2
|
||||
#define lcd_4_bit_enable_pin 13
|
||||
#define lcd_4_bit_d4_pin 4
|
||||
#define lcd_4_bit_d5_pin 5
|
||||
#define lcd_4_bit_d6_pin 6
|
||||
#define lcd_4_bit_d7_pin 7
|
||||
|
||||
|
||||
#ifdef FEATURE_JOYSTICK_CONTROL
|
||||
#define pin_joystick_x A0
|
||||
#define pin_joystick_y A1
|
||||
#define pin_joystick_x 0
|
||||
#define pin_joystick_y 0
|
||||
#endif //FEATURE_JOYSTICK_CONTROL
|
||||
|
||||
#ifdef FEATURE_AZ_POSITION_HH12_AS5045_SSI
|
||||
@ -199,7 +199,7 @@
|
||||
|
||||
#if defined(FEATURE_AZ_POSITION_A2_ABSOLUTE_ENCODER) || defined(FEATURE_EL_POSITION_A2_ABSOLUTE_ENCODER)
|
||||
#define pin_sei_bus_busy 24
|
||||
#define pin_sei_bus_send_receive 22
|
||||
#define pin_sei_bus_send_receive 22
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_YWROBOT_I2C_DISPLAY
|
||||
@ -212,7 +212,7 @@
|
||||
#define ywrobot_pin_d6 6
|
||||
#define ywrobot_pin_d7 7
|
||||
#define ywrobot_pin_bl 3
|
||||
#define ywrobot_blpol POSITIVE
|
||||
#define ywrobot_blpol POSITIVE
|
||||
#endif //FEATURE_YWROBOT_I2C_DISPLAY
|
||||
|
||||
|
||||
@ -222,13 +222,13 @@
|
||||
// #define pin_led_down 0
|
||||
|
||||
#ifdef FEATURE_AUTOPARK
|
||||
#define pin_autopark_disable 0 // Pull low to disable autopark
|
||||
#define pin_autopark_timer_reset 0 // Pull low to reset the autopark timer (tie in with rig PTT)
|
||||
#endif
|
||||
#define pin_autopark_disable 0 // Pull low to disable autopark
|
||||
#define pin_autopark_timer_reset 0 // Pull low to reset the autopark timer (tie in with rig PTT)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_AUDIBLE_ALERT
|
||||
#define pin_audible_alert 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//#define pin_status_led 0 // Status LED - blinks when there is rotation in progress
|
||||
|
||||
@ -236,4 +236,3 @@
|
||||
#define satellite_tracking_active_pin 0
|
||||
#define satellite_tracking_activate_line 0
|
||||
#define satellite_tracking_button 0 // use with a normally open momentary switch to ground
|
||||
|
||||
|
@ -1,21 +1,21 @@
|
||||
|
||||
/* -------------------------- rotation settings ---------------------------------------*/
|
||||
|
||||
#define AZIMUTH_STARTING_POINT_DEFAULT 180 // the starting point in degrees of the azimuthal rotator - only used for initializing EEPROM the first time the code is run
|
||||
#define AZIMUTH_STARTING_POINT_DEFAULT 180 // the starting point in degrees of the azimuthal rotator - only used for initializing EEPROM the first time the code is run
|
||||
#define AZIMUTH_ROTATION_CAPABILITY_DEFAULT 450 // the default rotation capability of the rotator in degrees - only used for initializing EEPROM the first time the code is run
|
||||
|
||||
/*
|
||||
/*
|
||||
|
||||
Use these commands to change the azimuth starting point and rotation capability if you have already ran the code one which would have
|
||||
Use these commands to change the azimuth starting point and rotation capability if you have already ran the code one which would have
|
||||
initialized the EEPROM:
|
||||
|
||||
\Ix[x][x] - set az starting point
|
||||
\I - display the current az starting point
|
||||
\Jx[x][x] - set az rotation capability
|
||||
\J - display the current az rotation capability
|
||||
\Q - Save settings in the EEPROM and restart
|
||||
*/
|
||||
|
||||
\Q - Save settings in the EEPROM and restart
|
||||
*/
|
||||
|
||||
#define ELEVATION_MAXIMUM_DEGREES 180 // change this to set the maximum elevation in degrees
|
||||
|
||||
/* --------------------------- Settings ------------------------------------------------
|
||||
@ -34,7 +34,7 @@ You can tweak these, but read the online documentation!
|
||||
// you must use raw azimuth (if the azimuth on the rotator crosses over to 0 degrees, add 360
|
||||
// for example, on a Yaesu 450 degree rotator with a starting point of 180 degrees, and an overlap LED
|
||||
// turning on when going CW and crossing 180, ANALOG_AZ_OVERLAP_DEGREES should be set for 540 (180 + 360)
|
||||
#define OPTION_OVERLAP_LED_BLINK_MS 100
|
||||
#define OPTION_OVERLAP_LED_BLINK_MS 100
|
||||
|
||||
// PWM speed voltage settings
|
||||
#define PWM_SPEED_VOLTAGE_X1 64 // 0 to 255
|
||||
@ -43,8 +43,8 @@ You can tweak these, but read the online documentation!
|
||||
#define PWM_SPEED_VOLTAGE_X4 253 // 0 to 255
|
||||
|
||||
//AZ
|
||||
#define AZ_SLOWSTART_DEFAULT 0 // 0 = off ; 1 = on
|
||||
#define AZ_SLOWDOWN_DEFAULT 0 // 0 = off ; 1 = on
|
||||
#define AZ_SLOWSTART_DEFAULT 1 // 0 = off ; 1 = on
|
||||
#define AZ_SLOWDOWN_DEFAULT 1 // 0 = off ; 1 = on
|
||||
#define AZ_SLOW_START_UP_TIME 2000 // if slow start is enabled, the unit will ramp up speed for this many milliseconds
|
||||
#define AZ_SLOW_START_STARTING_PWM 1 // PWM starting value for slow start (must be < 256)
|
||||
#define AZ_SLOW_START_STEPS 20 // must be < 256
|
||||
@ -105,8 +105,8 @@ You can tweak these, but read the online documentation!
|
||||
#define OPERATION_TIMEOUT 120000 // timeout for any rotation operation in mS ; 120 seconds is usually enough unless you have the speed turned down
|
||||
#define TIMED_INTERVAL_ARRAY_SIZE 20
|
||||
|
||||
#define LCD_COLUMNS 20 //16
|
||||
#define LCD_ROWS 4 //2 // this is automatically set below for HARDWARE_EA4TX_ARS_USB and HARDWARE_M0UPU
|
||||
#define LCD_COLUMNS 16 //16
|
||||
#define LCD_ROWS 2 //2 // this is automatically set below for HARDWARE_EA4TX_ARS_USB and HARDWARE_M0UPU
|
||||
#define LCD_UPDATE_TIME 1000 // LCD update time in milliseconds
|
||||
#define LCD_HHMM_CLOCK_POSITION LEFT //LEFT or RIGHT
|
||||
#define LCD_HHMMSS_CLOCK_POSITION LEFT //LEFT or RIGHT
|
||||
@ -295,7 +295,7 @@ You can tweak these, but read the online documentation!
|
||||
#define AUTOCORRECT_TIME_MS_EL 1000
|
||||
|
||||
#define PIN_LED_ACTIVE_STATE HIGH
|
||||
#define PIN_LED_INACTIVE_STATE LOW
|
||||
#define PIN_LED_INACTIVE_STATE LOW
|
||||
|
||||
#define AUDIBLE_ALERT_TYPE 1 // 1 = Logic high/low (set AUDIBLE_PIN_ACTIVE_STATE and AUDIBLE_PIN_INACTIVE_STATE below, 2 = tone (set AUDIBLE_PIN_TONE_FREQ below)
|
||||
#define AUDIBLE_ALERT_DURATION_MS 250
|
||||
@ -307,9 +307,9 @@ You can tweak these, but read the online documentation!
|
||||
#define AUDIBLE_ALERT_AT_EL_TARGET 1
|
||||
|
||||
#define OVERLAP_LED_ACTIVE_STATE HIGH
|
||||
#define OVERLAP_LED_INACTIVE_STATE LOW
|
||||
#define OVERLAP_LED_INACTIVE_STATE LOW
|
||||
|
||||
#define PRESET_ENCODER_CHANGE_TIME_MS 2000
|
||||
#define PRESET_ENCODER_CHANGE_TIME_MS 2000
|
||||
|
||||
// FEATURE_AZ_ROTATION_STALL_DETECTION
|
||||
#define STALL_CHECK_FREQUENCY_MS_AZ 2000
|
||||
@ -337,7 +337,7 @@ You can tweak these, but read the online documentation!
|
||||
#define CONTROL_PORT_MAPPED_TO &Serial // change this line to map the control port to a different serial port (Serial1, Serial2, etc.)
|
||||
#define CONTROL_PORT_BAUD_RATE 9600
|
||||
//#define REMOTE_PORT Serial3 // used to control remote unit
|
||||
#define REMOTE_UNIT_PORT_BAUD_RATE 9600
|
||||
#define REMOTE_UNIT_PORT_BAUD_RATE 9600
|
||||
#define GPS_PORT Serial2
|
||||
#define GPS_PORT_BAUD_RATE 9600
|
||||
// #define GPS_MIRROR_PORT Serial1 // use this to mirror output from a GPS unit into the Arduino out another port (uncomment to enable)
|
||||
@ -384,4 +384,3 @@ You can tweak these, but read the online documentation!
|
||||
#define SATELLITE_AOS_LOS_CALC_RESOLUTION_HIGH_TRIGGER_SECS 300 //next event is < 5 minutes
|
||||
#define SATELLITE_AOS_LOS_CALC_RESOLUTION_MEDIUM_TRIGGER_SECS 3600 //next < 1 hour
|
||||
#define SATELLITE_AOS_ELEVATION_MIN 0.0
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user