Software version history

This article contains the MicroStar 2000 software version history. This data is a little cryptic because it was pulled from the MicroStar source code header and it is a history of all changes that have been made starting with the original version in 2001. You will also find a to do list defining future modifications that are planned.


; Revision History:
; All of the version 1.0 revesions were for the orginal Encoder design that had
; a final hardware revision of 3.0. Versions 2.0 are all designed for the hardware
; revision 4.0 and beyond. This revision uses the PIC 18F8722 PIC. The orginal
; encoder used a 17C766 PIC and the version 2.0 series is not compatable with that
; PIC.
; Version 1.0b
; First release, Jan 2001
; Version 1.0c
; Fixed a few minor bugs and finished the dual SPROM
; support
; Version 1.0d, Jan 28, 2001
; Fixed a timming bug in the SPROM read function.
; Version 1.0E, April 16,2001
; Fixed the interface to RF deck, added support for
; 50MHz, 53MHz, and 72MHz.
; Added support for the receiver battery test function.
; Version 1.0F, May 5, 2001
; Placed the PLL in high current mode.
; Fixed a display bug in the LCD52 drivers.
; Small display bug in 4x12 display driver.
; Version 1.0G, October 21, 2001
; Added programmable channel output order
; Added Programmable trim assignment
; Added support for Futaba type buddy box
; Added new Auto Trim mode, where full adjustment is made when button
; is pressed
; Added enable switch to timer and throttle trigger to timer
; Added up counter mode
; Version 1.0H, March 17, 2002
; Fixed a bug in the throttle trim, the percentage value used
; was from the rudder!
; Added a timer option to stop at zero on down counting.
; Fixed bug in UP counter.
; Version 1.0I, August 18, 2002
; 1.) Servo limits changed to .750 mS and 2.250 mS
; 2.) Snap PB changed to % and done after normalization
; 3.) CROW added
; Version 1.0J, November 30, 2003
; 1.) Fixed a bug in the table edit mode that would not
; allow you to edit the last position.
; 2.) Fixed the Fixed First Mixer bug.
; Version 1.1a, December 2004
; 1.) Added high and low rate expo to A,E,R (tested)
; 2.) Fixed the alt aircraft timer problem (tested)
; 3.) Added the Throttle low point adjust feature (tested)
; 4.) Added second alternate aircraft switch (tested)
; 5.) Add set model to default parameters (tested)
; 6.) Add buttons to set time values in min and max as short cuts.
; use snap right and snap left buttons. (tested)
; 6.) Add battery timer (tested)
; 7.) Add FMS flight simulator support (tested)
; 8.) Channel trigger points (tested)
; 9.) Add battery alarm level adjustment (tested)
; 10.)Reorder the menus into a more logical order (tested)
; 11.)Add 4 more tables (tested)
; 12.)Move Shift setting to Aircraft area (tested)
; 13.)Fix bug in the Frequency selection function, can not
; select OFF as an option. (tested)
; 14.)Changed the way Mixer 2 works. (tested)
; 15.)Bug that causes the transmitter to crash in CAL mode when
; a mixer is on. I think it was the select chan functions mult.
; (tested)
; Version 1.1b, January 14, 2005, bug fixes only
; 1.) Fixed a EPROM space bug
; 2.) Det defaults for min and max value
; 3.) Fixed AUXOUT on top line of display
; Version 1.1c, Feburary 12 2005, bug fix
; 1.) Fixed bug in AutoTrim one shot mode if you have full
; stick deflection.
; Version 1.1d, July 7 2005, requests, not yet implemented
; Found and fixed a servo position editing bug. This had
; to do with block move using wrong radix.
; Version 1.1e, July 24 2005
; Found and fixed a aileron differential bug
; Version 1.1f, December 10 2005
; Found and fixed a channel 8 bug that caused the programed values to
; be off by a factor of two from center
; Version 2.0a, December 2006.
; 1.) Move channel order to aircraft memory area
; 2.) Auto Trim range increase to +- 20 percent
; 3.) Use preset button as an exit from UI
; 4.) Move tables to Aircraft area (2 tables added, 22 bytes)
; 5.) Add fixed mixers (12 bytes total)
; - Ail to rudder, 2 bytes
; - Rud to ail, 2 bytes
; - Rud to ele, 2 bytes
; - Throttle to ele, 1 byte
; - Dual elevator, 2 bytes
; 6.) Add sub trims, 8 bytes
; 7.) Fix the format flash functions to sync with ppm signal output
; 8.) Change invert function to say, positive/negative
; Version 2.0b, January 2007
; 1.) Fixed bug with both LEDs
; 2.) Fixed bug in transmitter voltage adjust
; 3.) Fixed bug in throttle servo position set
; 4.) Added the Adapter assembley switch
; Version 2.0c, March 2007
; 1.) Fixed bug in copy aircraft, limited aircraft number to 8.
; 2.) Added the frequency band selection menu options to replance jumpers,
; Version 2.0d, April 8 2007
; 1.) Alternate aircraft number problem. 0 is allowed, look at copy
; function as well. Fixed copy bug, 0 is OK in alt aircraft define
; zero disables function
; 2.) Power up student mode throttle adjust lockup, added clear to TTflag
; on powerup
; 3.) Elevon bug, aileron channel is dead
; 4.) VTAIL bug, rudder is dead
; 5.) For elevaon and vtail remove the code to divide throws in half
; Version 2.0e
; 1.) Added variable rate to mS change function
; 2.) Fixed subtrim bug, they were not working at all due to indirect reg being
; overwritten
; 3.) Bug with the on time counter, in process need to add init to format function
; 4.) Fixed ADC reference problems
; 5.) Test auto trims
; 6.) Changed channel 5,6,7, and 8 to be -1000 to 1000 range. This makes mixing
; better and allows the end points adjustments to work on dual A and E.
; Version 2.0e2, Feb 3, 2008
; 1.) Fix a bug with the joystick center determination function. It was before the
; configuration parameters were read causing a bug when the ref is changed to
; 5 volts.
; Version 2.0e3, March 16 2008
; 1.) Added an option to invert the buzzer polarity. This is to allow a vibrator to
; be used in place of the buzzer on the rev 4.0 encoder.
; Version 2.0f, July 13 2008
; 1.) change snap buttons to allow sticks to still function, A,E,R only.
; 2.) Fixed bug in the throttle stick timer enable.
; 3.) Auto trim bugs, no errors found.
; 4.) Fix the slew speed.
; 5.) Fixed bug in the stick position switch function.
; 6.) Added stick speed control to select aircraft and percentage.
; 7.) Add message to indicate you are in student mode.
; 8.) Beep when the trims are set to zero.
; 9.) Added servo slew rate control to channel 5 and 8.
; 10.) Allow the user to select the RF deck ref osc frequency.
; 11.) Allow adjustment of the framming rate and frame time defect.
; 12.) Added the configureation option to EEPROM. This allows the firmware
; modes to be selected via flags and only one set of firmware is needed.
; Version 2.0g, August 2 2008
; 1.) Added the CCPM mixing.
; 2.) Fixed init bug on servo rates.
; 3.) Added port B to the TEST IO mode 2nd line.
; 4.) Added hysistress to trim beep.
; 5.) Added digital trims.
; 6.) Fixed FMS simulator bug.
; 7.) Added Serial send mode, USART2 38400 baud.
; 8.) Fixed trim center beep bug.
; Version 2.0h, October 11, 2008
; 1.) Fixed a bug that caused the transmitter to lockup when the tach was
; pluged in.
; Version 2.0i, December 6, 2008
; 1.) Add servo reversing function.
; - Add the reverse option to each servo's set of options
; - Do this by looking and the sign of the channels gain, positive gain
; indicates non reversed channel.
; 2.) Add center beep option for throttle trim and CH6 and CH7
; 3.) Fixed the DOG display bugs in the digial trim display
; 4.) Fixed a center beep bug on the digitial trims
; 5.) Upgrade to the 12bit ADC pic, The Encoder will now auto detect CPU.
; 6.) Added function to allow user to adjust digital trim update rate
; 7.) Added clear all sub trims function.
; Version 2.0j, December 25 2008
; 1.) Copied the ADC normalized position data to bank 8 for the PC interface.
; 2.) Read the receiver voltage raw ADC values in cal mode for PC interface
; 3.) Add a servo position monitor function. Press and hold option button
; on power up to enter this mode.
; Version 2.0k, May 3, 2009
; 1.) Changed the order of calls in the run and cal mode, moved the slew rate
; function before the sub trims.
; 2.) Changed the mix functions to use the slewrate limited values for CH8 and
; CH5.
; 3.) Added FMS on UART 1 or UART 2, June 12, 2009
; Version 2.0l, November 2009
; 1.) Fixed bugs in the futaba buddy box modes
; 2.) Addded a delay between channels on the MicroStar buddybox mode to
; allow UARTs to sync up when the osc freq is a little different.
; Version 2.0m, November 29 2009
; 1.) Fixed a rounding problem with the servo calibration routines
; 2.) Improved the OPTION button debouncing logic
; Version 2.0n, January 11, 2010
; This version has significant updates to the helicopter mode thanks to
; input from Jack Dice.
; 1.) Added a helicopter mode enable
; 2.) Use CH8 switch as flight modes, A=Normal, B=Stunt 1, C= Stunt 2.
; Normal is really defined by no other mode being active.
; 3.) Treat Throttle Hold as a 4th flight mode that overrides other modes
; 4.) Use a table for Throttle, definable in each mode
; 5.) Use a table for Pitch, definable in each mode
; 6.) Use CH6 control as pitch trim and seperate from throttle
; 7.) Each mode provides gyro sensitivity constant but programable output,
; this signal is output on CH5
; 8.) Added helicopter option to main cal menu to adjust parameters
; 9.) Added flight mode display to helicopter mode
; 10.) fixed an error in the CH8 servo monitor display, A and C were
; reversed.
; 11.) Fixed the tables to support negative values.
; 12.) Fixed a minor display bug in the servo monitor function
; 13.) Added the gyro tune sensitivity adjust mode
; 14.) Expanded the servo monitor to include output pulse width data as well.
; 15.) Fixed a bug in the mixers when a slew rate controlled channel is
; mixed to itself.
; 16.) Initial restructuring of the code for the MicroProStar and addition
; of the drivers. First release of the MicroProStar.
; 17.) The default for the throttle servo range was in the reverse direction,
; I fliped it in this release.
; 18.) The MicroStar buddybox mode had a baudrate error.
; 19.) Updated the AUXOUT logic so that shift invert will change the PPM
; signal as it does the RF deck modulation pin.
; Version 2.0o, August 1, 2010
; 1.) Fixed a table numeric range bug, a rare issue that only happen at
; extreme stick and trim limits.
; 2.) Added remap function and table to Advanced menu.
; 3.) Added displays modes to the MPS.
; 4.) Move number of channels to aircraft memory area.
; 5.) Decreased the stick sensitivity for the Auto Trim function.
; 6.) Fixed a very minor bug on the tables.
; 7.) Fixed the init routine and stop sending the initial PPM pulse train.
; 8.) Fixed SNAPL to work like SNAPR, so that controls influence the positions.
; 9.) Change default servo limits and position to 900 and 2100 for the system
; maximums and 1100 and 1900 for the servo starting points
; 10.) Added a new ADC read mode for the MPS. This mode reads the joystick using
; the 5 volt ref and does battery voltage correct as well as insuring that
; the battery supply is stable.
; 11.) Fixed a mixer programming bug caused by the CalServoUpdate flag not being
; cleared on power up.
; 12.) Add canned output order, ACE = EART5678, Futaba = AETR5678,
; Airtronics = EATR5678, JR = TAER5678
; 13.) Make the ADC test mode display in decimal.
; 14.) Added the version number to the general data storage area.
; 15.) Added threshold adjustment to Auto Trim stick positions. 6/19/10
; 16.) Test the throttle adjust function and make sure its OK. Tested OK
; 17.) Added auto trim disable option
; 18.) Format flash bug in UI, when slect no it reloaded all settings.
; 19.) MPS format flash display bug
; 20.) Changed MPS display default to alternate
; Version 2.0p, December 2010
; 1.) Allow user to define PPM logic level of AUXOUT
; 2.) Add Move Mix function, also ask to clear the mixer we moved from.
; 3.) Add Apply to all option on a number of global functions, channel order
; 4.) Add a filter to the battery voltage monitor. Use a difference equation
; Vbat * N = Vbat(t-1) * (N - 1) + Vbat(t). Where N = filter time constant.
; This filter is scalled by 256 to prevent round off errors.
; 5.) Add a servo monitor display of position in percentage to allow transfer to
; mixer gain. Change all labels to three chars and add % to display.
; 6.) Fixed a bug on the mixers that only happens on throttle, CH5, or CH8 when
; mixed to itself.
; 7.) DOG-M contrast adjustment to the system setup menu.
; 8.) Initalized DriveCh when not used
; Version 2.0q, January 2011
; 1.) Fixed the DOG contrast adjust function, it actually has 64 levels. I expanded
; the range a bit.
; 2.) Fixed a rounding issue on throttle servo end point adjustment.
; 3.) Fixed a bug introduced in 2.0p that killed the servo position update in
; the servo setup routine.
; Version 2.0r, Februray 2011
; 1.) Fixed a bug in entering table position using the transmitter UI.
; 2.) Fixed a bug that caused the auto trim value to be reset when the servo
; cal menu is entered.
; Version 2.0s, December 2011
; 1.) Added CCPM reverse options for Ail and Ele
; 2.) Added display monitor for auto trim position. Hold the auto trim button down
; on power up to enter the auto trim monitor mode.
; 3.) Fixed a strange fixed mixer bug with the Rud to Ele mixer only when negative
; gains are used. 12/19/2011
; 4.) Fixed the mstar.asm file to define the config blocks using cblock
; 5.) Fixed a bug in the send serial data mode that messed up the data and baud rate
; Version 2.0t, January 2012, in progress
; 1.) Changed the display driver to 4 bit operation mode (done)
; 2.) Added second LCD display driver and logic (done)
; 3.) Added FrSky telemetery read and display functions (inprogress, need to add nammed menu for page selection)
; 4.) Add options to advanced menu: (done)
; - Enable FrSky
; - Enable dual display
; - Select FrSky screen page
; 5.) Add logic to test dual display enable before enabling in alt display macro (done)
; 6.) Write the display functions for FrSky (done)
; 7.) Add init for dual display (done)
; 8.) Call the display function from main application (done)
; 9.) Add the echo logic / code for FrSky (done)
; 10.) Add support to serial connection to spectrum lowpower RF decks (done)
; - Add options in advance menu
; - User UART2 for this function
; 11.) Add dual display functions
; - Add support for the display buttons
; - mode and display buttons, only for secondary display
; - Second display modes
; a.) Digital trims
; b.) Stick and servo position monitor
; c.) Auto trim position monitor
; d.) FrSky telemetry
; 12.) Use A19 signal to select USB / RS232. A19 (RH3) high selects USB. Set this pin
; high by default and add menu selection. Global option. (done, untested)
; 13.) Add dual digitial trim sensitivity function. High rate trim happens at low threshold value.
; 14.) Add test mode to allow outputing 0 or 5 volts to the RF deck modulation pin.
; 15,) Make sure servo position adjust is working including in spectrum FR deck mode.
; Version 3.0, November 2012
; 1.) Added 10 channels including output capability.
; 2.) Added 12 internal channels.
; 3.) Added advanced mixer expresion capability.
; 4.) Update send serial to use the number of channel counter and add the 0xFF
; after the two SOT chars.
; 5.) Allow buadrate adgust for send serial
; 6.) Develope the dual rate digital trim
; 7.) Added microSD card interface with support for reading only at this time
; Version 2.0x, to do list
; B.) Fix the retract warning to work even without my RF deck and hold off the
; modulation signal.
; C.) Look into a minor display bug in the channel order options. The UI does
; reflect the currently select channel order.
; D.) Add the ability to control the servo positions from the PC
; application. Also add an API so a user can control with his own
; application.
; 1.) Add more aircraft specific tables, 7 total. Can't have more than 7
; aircraft tables. here is what needs to be done for this change:
; a.) Move the aircraft tables to the end of page 4 in the aircraft setup area.
; reserve the old space so we don't have to adjust pointers.
; b.) Add the 5 additional entries in the data.asm file
; c.) Edit the PC app to support the new tables and set defaults
; d.) Test this function
; 2.) and i just remembered another thing i don't find so user friendly:
; whenever i need to adjust something in one of the alternate aircraft
; memories i have to first call up and select that memory. with the new
; version's 6 alternates this could turn into a real nighmare. could it
; be changed so that whenever you switch to CAL mode you're automatically
; in the menu of whatever memory was currently being used and displayed on
; the LCD when the switch was hit?
; 3.) Allow no confirm of RF at startup. Do this by adding a EEPROM config function
; to the bootloader. Allow the following types of functions or at least consider
; these functions:
; a.) The no RF confirm option
; b.) Oversampling
; 4.) Trims carries across alternate aircraft. This should be optional and
; selectable trim by trim
; 5.) Have the transmitter broadcast the position information during adjustment
; of the table values.
; 6.) Digitial trim issues
; - The system doesn't seem to save to the *.CFG file the actual position
; of digital trims, and then, when loading the file using another MS2K
; radio, they are lost.;
; -When I set up an alternative aircraft and it happens to need a
; different trim position than the master has, that is, when I need
; different flight phases with different trimmings, digital trims do not
; act independently, but on all the phases at once.
; 7.) Allow auto trim to automatically go to trim zero thus more total range and
; no need to go to cal menus.
; 8.) Smooth transistion and timed when changing modes using alternate aircraft.
; 9.) Simplify the alternate aircraft setup options.
; 10.) Look at the CROW function and update it as per the MP8000
; 11.) Add switch functions to CH6 and CH7