initial BTSERIAL code. WARNING, it affects SPEKTRUM as well
new change, NOCOMPUTERC is automatically defined
Changed the pre-set character strings in from underscores to dashes, and from square brackets to parens.  The prior characters are not true ascii characters and therefore no standard definition exists for them.  Different LCD manufacturers put them in different places in the chargen ROM.  By using all standard ASCII characters, such as dashes, this tends to work across more LCD types. 
Changed #ifdef structure to more fully merge SPEKTRUM and BTSERIAL code.  Removed NOCOMPUTERC
added flying wing:
- one motor on pin 9 (optional) with support in GUI
- working mixing options for typical 2 servo mirrored setup 
(configurable)
- no need to swap servo connectors (as with dumb dx6i elevon mixing)
- servos: mid- and endpoints configurable
- working passthrough option with aux1<1300 - no visual feedback in GUI 
yet
- works (but difficult to tune PID parameters)

for discussion look here 
http://www.multiwii.com/forum/viewtopic.php?f=8&t=594&start=30
bring _shared files up to Alex branch after  v1.9 release
cleanup multiwii shared
catchup *_shared to Alex dev
added: status armed on debug4
added PassThrough Mode - configurable via GUI checkboxes;
turned number of checkboxitems into #define (arduino sketch) and variable (Processing sketch) for future enhancements
+ flying wing: turn servos' midpoints into LCD configurable items for trim (needed because 
the TX trims are occupied to center stick outputs to 1500 for multiwii); save in eeprom
fixed cpp warning for redefinition of LCD_BAR

+ fix various cpp and compiler warnings
+ cleanup auto telemetry. use int instead of chars to enumerate telemetry pages
+ add i2c_errors_count to telemetry page 5
+ add letters '1'  to '5' as command chars to toggle telemetry pages (useful to request telemetry pages from ascii terminal 
like arduino monitor)
+ fixed some warnings and errors from -pedantic
added model-lost-alarm to aux-switches - configurable via GUI
added stick combo for magneto calibration: throttle=max, yaw=right, pitch=min
remove private i2c debug code, sorry.
+ fixed protocol error with param mismatch for W-command (write to eeprom)
+ added control char to identify correct end of transmission for W-command
+ added contral char handling for W-command with alarm on error to Serial.pde
against Alex' latest code r411

reduce memory footprint
    shorter strings in LCD.ino
    smaller array for soft powermeter 
re-port of features already in _shared
    cleanup internal misleading use of characters to address telemetry pages.
    add checkboxes option to gui and multiwii to unconditionally turn on the buzzer via 
aux1/aux2 as a model-lost-and-found
    preset the debug variables for GUI with more helpful info
    build multiwii with full cpp and compiler warnings and cleanup code (partially done 
only)
    have stick combo for magneto calibration (throttle=up yaw=left pitch=down)
    have servo midpoints (default 1500) user configurable via LCD (like subtrim on computer 
TX) for Flying Wing and TRI
Fix a bug where GUI 'write' command freezes when SPEKTRUM is defined and compile target is Mega2560
using Alex latest code, reincoroporate former additions again to proceed

reduce memory footprint
    shorter strings in LCD.ino
    smaller array for soft powermeter 
    refine LOG_VALUES switch, now possible modes 0,1,2
	0 no values
	1 more single param values
	2 like 1 plus powerconsumption on a per motor basis
	  (this uses the big array and is a memory hog, if POWERMETER <> 1)

re-port of features already in _shared
    cleanup internal misleading use of characters to address telemetry pages.
    add checkboxes option to gui and multiwii to unconditionally turn on 
     the buzzer via aux1/aux2 as a model-lost-and-found
    preset the debug variables for GUI with more helpful info
    build multiwii with full cpp and compiler warnings and 
     cleanup code (partially done only)
    have stick combo for magneto calibration
    have servo midpoints (default 1500) user configurable 
     via LCD (like subtrim on computer TX) for Flying Wing

new:
	reset cycle min/max values for each start of t
	 elemetry page 3 (start/stop via '3' or 'C' button)
	keep track of overruns of 650us limit for annexCode, write to debug3
	to trigger sporadic events (output telemetry, step forward auto 
	 telemetry), remove 32bit timer arithmetic and micros() calls; use 8bit and 
	 16bit modulo instead. works relative to cycle time now.
	for M-caommand: send maximum cycle time since last send to GUI (if LOG_VALUES is set) 
	 instead of previous cycle time
	new test for free memory in sketch - activate with '6' from terminal

todo
- move strings for configurationLoop (not time critical) from sram to flash
Total re-write of Spektrum support.  This is a DRAFT and I will optimize it further. It has been tested on a Mega2560 only. 

Removed the special interrupt handler and re-wrote support to use the new Serial (no dot) routines.  This eliminates a lot of overhead.  No more special interrupt handler, no more calls to micros(), instead it uses the main loops timing, no extra buffers for the serial data, and much more. 


Also fixed a problem with the new SerialOpen.  It was setting the TX interrupt bits for serial 1, 2, and 3, yet there were no transmit interrupt handlers defined.  This caused an immediate halt when any of these ports was opened.  They are now defined as receive only.  If we ever need them to transmit, we will need to define interrupt handlers and add the bits back into the open.