Free Flight Computer

Home

Introduction

Specification

Photographs

Screenshots

Hardware

Software

Utilities

Physics

HISTORY

2000
2001
2002
2003
2004

Traces

Links

23/02/03        Disabled portb pull-ups.  Could be causing capacitive overshoot/
                undershoot problems on display enable lines - the source of noise on
                the voltage and battery rails!


24/02/02        Didn't work, oddly enough.  Will add pull-downs / termination on
                lcd and sclk lines to avoid current gloop.

                However, to help reduce current surge modified software so changes
                outputs one at a time.


19/04/03        Updated default pressure sensor calibration (m and c) values

                !!!!!!!!!!!!!! ALTIMETER AND VARIO BOTH WORK !!!!!!!!!!!!!!!!

                For the first time in three years both altimeter and vario now work!
                Altimeter needed couple of twiddles to circuit for new sensor and
                get resolution of 2 / 3 feet without any flicker.  Vario needed
                first part of circuit removing, gains modifying for new sensor,
                and capacitive smoothing added (CR being set to 0.22).

                Barograph also works!  Well, mostly.  Now need to do the following:

                        - Update circuit diagrams and pcb for next spin (if do one)
                        - Baro gives altitude, vario (avg?), -35(temp was 25), 131??
                        - Need to fix vario peak and average
                        - Need to sort out timer auto start/stop
                        - Need to fix bugs in barograph screen
                        - Need to add beeps to vario!!!

                Phew.


27/04/03        Improved cal of alti based on readings from AT&T online station in
                Cambridge.  Seems that we agree except for offset so have added 4.5mbar
                to c.  Not a bad first stab really!

                Now confident in that, need to stand next to a station and
                calibrate to a tenth of a mbar.  Maybe a trip to the discovery store
                with altimeter discretely secreted ;)


28/04/03        Debugged peak detect and speeded up time constant so timesout previous
                peak if hasn't been topped for five seconds.


02/05/03        Fixed a bank select bug in barograph mmi screen.
                Corrected barograph temperature output when "SEND"
                Changed barograph to store AVERAGE_VARIO rather than VARIO


07/05/03        Fixed barograph screen bug where display goes funny (sent cmd rather
                than data in hide cursor).  Still problem when write past a minute
                for barograph (screws up) and need to change +5V regs to LDOs.

                Migrated to latest version of MPLAB for fast simulation.

                Fixed end-of-barograph check bug which probably caused the failing
                barograph problem.


08/05/03        Fixed terminate-barograph problem surprisingly quickly!  Had
                ommitted ,w from a subwf so did a search and checked (and fixed) some
                others as well.


22/05/03        Put in code to slow down rapid keypresses.
                Fixed store of vario reading - was in wrong bank.
                Fixed hide cursor - now does : instead of blank


10/07/03        Modified barograph so stores baro rate in end marker.  This is now
                sent out as the last number on SEND.

                Improve barograph screen, now show barograph store in use and
                time remaining (instead of words can store).  To save processor time
                only do this if need to (on barorate change, store change, or
                barograph finished updating).

                Not yet compiled or tested though!


16/07/03        Compiled after couple of simple typos sorted.
                Removed Tetris screen to provide some more memory.
                Optimised code in lcd.asm by adding nibble latch routine and repeat
                calls to send_data without reloading wreg.
                Added temperature compensation to vario (needed as 2.5V ref drifts).


17/07/03        Debugged temperature compensation using simulator.
                Fixed bug in existing calculation for barograph remaining.
                Debugging time remaining new functionality.


21/07/03        Finished debugging time remaining on simulator.
                Found bug in temperature adjustment (was adjusting the wrong way!)
                Fixed bug in optimised send_8bit_cmd/data code (need to use return
                and not retlw!) but seemed all to work first time apart from that!


22/07/03        Update barograph time remaining when change barograph rate.

                Added correct TAS calculation (yet to compile or simulate).  Also added
                ASI_C factor so can have impactpressure = m * adc + c for asi.


28/07/03        Set default value for asi_m.
                Ran IAS and TAS calculation through simulator and debugged.


29/07/03        Removed polars and ias table (no longer going to be used)
                Changed S2F to glide angle
                New layout for main display to accomodate glide angle and distance
                Added display of glide information


30/07/03        Compiled and simulated - fine.
                Added s2f angle calcs, compiled and linked.
                Simulated and fixed glide angle calculation, now just need to do
                distance.

31/07/03        Moved ASI_M/C and ALT_M/C to bank 0 now have space, and for more efficient
                code.  Finished simulation and now ready to test!

11/08/03        Added vario beeps into software.

12/08/03        Simulated and fixed minor bugs in beep.

27/08/03        Fixed continuous beep problem - mmiflags is in bank 1
                and was reading from bank 0 in interrupt routine.

                Also simulated a new piezo drive circuit which will work this time.  Previous
                circuit was for inductive rather than capacitive loads.  A piezo
                disc has a capacitance of 18 to 30nF.


30/08/03        Implemented new hardware circuit - a lot better but still room for
                improvement (sharper edges for greater dB?).  Fixed bug in beeper
                software and calculation.

                Modified audio thresholds to 0.6up, 1down and dropped output
                frequency.

                Fixed bug in barograph - never advanced pointer in memory past
                marker.  Note bugs remaining if reach end of trace yet to resolve ...


07/09/03        Implemented vario using alti adc instead of analogue circuit.  No zero
                or drift to worry about and same accuracy.  A little slower in frequency
                of update but no big deal.  Reliable!

                Changed sounder so 120ms on, 130ms off going up; and 170ms on, 80ms off
                when going down.


08/09/03        Fixed possible problem in 16bit adc read - lacking pipeline when read
                the lsb of word.  Also halved averaging period if DIGITAL_VARIO defined.


16/09/03        Add auto start/stop functionality


17/09/03        Fix bug in glide distance calculation causing alti to reset.


21/09/03        Average previous four samples for use by digital vario instead
                of just taking a spot (noisy) reading.  Same lag as would have from
                an analogue implementation.

                Fixed bug in adc read - was reading bits after taking SCLK high. This
                was fine for all except the LSB bit which only has a hold time of up to
                100ns.  LSB was always therefore stuck high.  Now modified so read bit
                before take SCLK high.  Should be a bit more accurate now and digital
                vario less noisy.

                Fixed peak vario detect.


03/10/03        Updated schematics ready for final board spin.  Now have pitot
                tube circuit on board, latest pressure sensors and voltage regulators
                and so on.  Also, as now are just using altimeter for vario can use
                VARIO pin for output.  This is now used for switching on and off the
                temperature sensor so better current consumption and no self heating
                problems.


21/10/03        Remove non-DIGITAL_VARIO code thus making digital vario core code.  Will
                be easier to maintain this way and can also reduce size of vario averging
                buffer.

                Now using digital vario; remove use of RA2 as analogue input and all the
                necessary reconfiguration of ADCON1 that involved.  Instead use as a
                digital output nMeasure for switching on and off the temperature sensor.
                This will remove problems with self heating and save current.


8/12/03         Change config word to XT oscillator

Back to top ...