o Major redesign of EEPROM logic. Now all settings will generally be saved between software updates. Running Ver. 0.23 will corrupt existing settings. Run FAC command after installing, then reset all transmitter settings.
o Fixes a bug that allowed CAL and ID values to be overwritten after a software installation applies new EEPROM settings.
o Fixes a bug that allowed the LED to be stuck in the ON state after turning off LEDs with the LED command.
o Modes were added to allow the start tones to play without Morse code being sent between starting intervals. Both 2-minute and 5-minute silent starts are supported. The transmitter is not keyed in these modes.
o Setting the DIP value in software applies the new DIP value immediately without a reset.
o The LED (if enabled) is disabled after the first cycle completes, to save power.
o Unused watchdog timer functionality was deleted.
Fixes these two minor bugs:
o When start tones were turned off, the audio tone output would be silenced during the time that the start tone sequence would have played. The key output pin still functioned as intended.
o Start tones had a 5-minute interval if the transmitter were set to function as a Sprint spectator beacon, instead of a more appropriate 2-minute interval.
o Synchronization using the hardware sync pin can now be performed at any time, so long as the sync pin is enabled.
o The sync pin is enabled from power up, but gets disabled after the first transmitter cycle: (5 mins for Classic, 1 min for Sprint)
o Sync is accomplished by pulling the sync pin low for at least one second, and then setting it high. Its internal pull-up resistor is enabled. The pin is effectively debounced in software.
o Removed the SYN serial command, so there is now no way to disable sync using a command.
o Fixed a few minor bugs in the TEM command.
o Some refactoring of macro names
o Adds optional compile for external port pin pull-ups. When the HARDWARE_EXTERNAL_DIP_PULLUPS_INSTALLED is set to FALSE (default) the software will turn on the internal port pin pull-ups prior to reading DIP and SYNC pins. Those pins will then be set to outputs (LOW) after all pins have been read, to save power.
o Fixes a bug that prevented the FAC command from resetting the time calibration (CAL) and callsign (ID) settings.
o Reverses the logic of DIP pins so that ON corresponds to "1".
o Turned off the OC0A pin toggle when audio output is active. Only pin 9 is audio output now.
o Minor cleanup and formatting changes
o Added support for Sprint. Sprint fox behavior is available only when using the serial port "DIP" command. Physical DIP switches work the same as before.
o Minor cleanup of comments and unneeded variables.
o Clock calibration and station ID no longer get erased by a factory reset:
The only way to set these values is using the CAL and ID serial commands.
They still get initialized on an erased EEPROM, but never thereafter.
o MIT license added to all files.
o Fixes a problem with v0.3 in which Arduino changes the default values of Timer 2 registers.
o Turns off 30-second code speed-up for BEACON and Foxoring modes.
o Fixed a bug that prevented the SPD settings from getting saved to EEPROM.
o Added a temperature calibration value that gets saved to EEPROM.
o Temp calibration gets set using > TEM C <###> command, where ### is tenths of a degree and can be positive or negative value.
o Added comments
o Style and syntax fixes
o Added a time-since-reset seconds counter that could be used to incorporate delayed start, or shut-off time features.
o Integrated morse.cpp and morse.h into the project along with nacessary changes to make those files work correctly.
o Various bug fixes
o Reduced RAM memory footprint