Keith Packard [Mon, 15 Jun 2009 00:25:34 +0000 (17:25 -0700)]
Some kernels reference USB ttys as tty/tty* instead of tty:tty*
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 14 Jun 2009 23:45:19 +0000 (16:45 -0700)]
Rename state apogee -> coast
Keith Packard [Sun, 14 Jun 2009 23:39:28 +0000 (16:39 -0700)]
rename states. launchpad -> pad, coast -> fast
Keith Packard [Sun, 14 Jun 2009 23:36:29 +0000 (16:36 -0700)]
Disable monitor mode when communicating via usb
Keith Packard [Thu, 4 Jun 2009 21:38:45 +0000 (14:38 -0700)]
Format GPS seconds as %02d.%04d to avoid spaces in the value
The aoview GPS parsing code doesn't deal well with spaces in the middle of
the value, so pad the seconds field with a zero as needed.
Signed-off-by: Keith Packard <keithp@keithp.com>
Bdale Garbee [Thu, 4 Jun 2009 19:11:48 +0000 (13:11 -0600)]
newer INSTALL file pulled in by autogen.sh
Bdale Garbee [Thu, 4 Jun 2009 19:09:29 +0000 (13:09 -0600)]
add a distclean target to src/Makefile
Bdale Garbee [Thu, 4 Jun 2009 19:07:10 +0000 (13:07 -0600)]
add lib to the front of the subdir list
Keith Packard [Thu, 4 Jun 2009 18:20:10 +0000 (11:20 -0700)]
Move build and debug tools to 'cctools' directory.
These tools were merged in from the ccdbg package.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jun 2009 18:13:15 +0000 (11:13 -0700)]
Merge ccdbg and altos sources into one giant repository
Keeping these separate isn't making things any easier.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jun 2009 17:41:34 +0000 (10:41 -0700)]
Use autotools, move altos to src subdir
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 4 Jun 2009 17:25:30 +0000 (10:25 -0700)]
Make menu seperator insensitive
Keith Packard [Thu, 4 Jun 2009 00:07:34 +0000 (17:07 -0700)]
aoview: Add eeprom data fetching
Fetches the last flight data from a TM device connected via USB and writes
it to the flight log directory.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 3 Jun 2009 17:57:46 +0000 (10:57 -0700)]
Stop log dumping at flight end. Print 'end' at end of log.
No reason to continue dumping data past the end of the flight now that the
logging stuff has been demonstrated to work reliably. Also, to make
automated log dumping easier, this prints out 'end' after the log data so
that aoview knows when to stop reading.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 31 May 2009 16:22:01 +0000 (09:22 -0700)]
Start adding bi-directional packet link
Keith Packard [Fri, 29 May 2009 06:17:33 +0000 (23:17 -0700)]
Eliminate RDF tone generation.
Now that we have a viable telemetry-signal based RDF device via TeleDongle,
there's no reason to continue to waste power and bandwidth with a NFM tone.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Fri, 29 May 2009 06:17:25 +0000 (23:17 -0700)]
Change .gitignore to match new aoload procedure
Keith Packard [Thu, 28 May 2009 05:01:37 +0000 (22:01 -0700)]
Leave serial number writing to aoload
Instead of building per-serial hex files, leave that
process to the new aoload program
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 28 May 2009 04:53:15 +0000 (21:53 -0700)]
Add aoload to load serial-numbered altos binaries.
aoload is a custom version of ccload which edits the data before sending it
to the target machine, writing the target serial number into the data.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 24 May 2009 04:20:12 +0000 (21:20 -0700)]
Fix aoview telemetry GPS parsing code to use correct columns
This code was trying to pull the GPS data from the wrong columns, causing
aoview to fail to display GPS information.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 24 May 2009 04:18:57 +0000 (21:18 -0700)]
Parse both telemetry or log data ao_flight_test
Change the way data is fed from files to the flight test rig to handle
either kind of input file.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 24 May 2009 04:16:22 +0000 (21:16 -0700)]
Avoid 16-bit overflow in velocity computation.
Adding two 16 bit integers together can wrap around to negative numbers,
this resulted in velocity values which never decreased, making the switch
from coast to apogee state not occur.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 20 May 2009 16:44:55 +0000 (09:44 -0700)]
Make file handling more general so it can be reused.
The log file handling stuff will be useful for saving eeprom data, so pull
it out of the real-time log handling code and make a general interface.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 May 2009 06:54:44 +0000 (23:54 -0700)]
Ignore aoview_glade.h
Keith Packard [Mon, 18 May 2009 06:36:21 +0000 (23:36 -0700)]
Transmit computed ground pressure and acceleration values
These are the last two values relevant to figuring out the state of the
flight computer, and as they are computed by averaging 10 seconds of 100Hz
sample data, they're a lot more accurate than anything the receiver could do
on its own.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 May 2009 06:18:09 +0000 (23:18 -0700)]
Provide install target
Keith Packard [Mon, 18 May 2009 06:13:20 +0000 (23:13 -0700)]
Embed glade file in executable
This eliminates install issues nicely.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 May 2009 06:05:23 +0000 (23:05 -0700)]
Add About dialog to aoview.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 May 2009 05:44:19 +0000 (22:44 -0700)]
USB device names can contain '.' too
Depending on the hierarchy of devices, names can contain '.', so allow those
too.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 May 2009 05:43:34 +0000 (22:43 -0700)]
scandir returns -1 on error
In which case, the namelist is invalid, so don't look at it, and don't free
it.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 May 2009 05:29:54 +0000 (22:29 -0700)]
Send computed accel/vel/pres values over the radio
These computed values reflect what the flight computer is actually refering
to for state changes, and will be useful in debugging the flight software as
well as provide a filtered view of the data.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 May 2009 05:29:06 +0000 (22:29 -0700)]
Handle disappearing serial devices
Put up a dialog when the serial open fails, and shut down monitoring when
the serial device disappears while running.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 18 May 2009 05:24:53 +0000 (22:24 -0700)]
While on the pad, zero out velocity every second
We integrate acceleration to get velocity, but that means sitting on the pad
for a long time can add substantial error to the velocity value. Each
second, take the velocity value from a full second ago and subtract that out
of the current velocity. Once we detect boost, this will stop, which means
that as long as we detect boost within a second, we won't have subtracted
out any "real" velocity.
This keeps the pad velocity hovering around zero, which is pretty useful.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 17 May 2009 08:29:06 +0000 (01:29 -0700)]
Clear table, reset log on disconnect
Keith Packard [Sun, 17 May 2009 08:28:16 +0000 (01:28 -0700)]
Add pad lat/lon, max accel, max height
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 17 May 2009 07:46:09 +0000 (00:46 -0700)]
Clean up GPS display
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 17 May 2009 07:45:38 +0000 (00:45 -0700)]
Make aoview window taller
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 17 May 2009 07:13:45 +0000 (00:13 -0700)]
Add lots more aoview UI bits
Logs data to files, displays current state in window.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 17 May 2009 03:45:26 +0000 (20:45 -0700)]
When logging starts up, right the whole ring to the log.
This preserves the data pre boost-detect for later analysis.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sun, 17 May 2009 03:04:31 +0000 (20:04 -0700)]
Abandon use of accelerometer for apogee detect.
Integrating the accelerometer data to compute velocity worked for one rocket
flight, but additional testing shows that it doesn't work in other
airframes. Until we figure out how this should work, we'll rely on the
altimeter to detect apogee.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 16 May 2009 09:25:04 +0000 (02:25 -0700)]
Add preliminary aoview code
AoView connects with TeleDongle to present telemetry information in a
reasonable form. Right now, it just displays information to stdout, but it
does have fancy dialogs for finding the USB devices.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 14 May 2009 03:41:54 +0000 (20:41 -0700)]
Discard usb output before connection. Handle USB reset.
Discarding output before USB is plugged in allows threads that send output
and do other things to work without a USB connection. Unfortuantely, there
doesn't appear to be any way to detect when the USB link is disconnected,
which means that once USB is enabled, future writes will continue to block.
USB reset causes the USB interrupts to all be reconfigured back to power-on
state.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 14 May 2009 03:40:42 +0000 (20:40 -0700)]
Enable radio monitor by default in teleterra, teledongle and tidongle
These ground loads want to monitor the radio constantly, and not require use
of the 'm' command before listening.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 14 May 2009 03:39:28 +0000 (20:39 -0700)]
Remove monitor/rssi functions from telemetrum load
Telemetrum is now a flight-only load, use teleterra or teledongle for ground
boards.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Thu, 14 May 2009 03:38:11 +0000 (20:38 -0700)]
Split out ao_state_names to separate file
Allows state names to be used in programs without monitoring enabled.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 May 2009 21:29:30 +0000 (14:29 -0700)]
Indicate RSSI with a blinking LED
Blink the red LED at a rate proportional to the RSSI value.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 May 2009 18:19:13 +0000 (11:19 -0700)]
Make ao_flight_test show AGL altitude and positive acceleration under boost
This makes the output more readable
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 May 2009 18:18:24 +0000 (11:18 -0700)]
Make ao_flight_test able to read raw logging data
Protect ao_flight_test reading functions so that a simple
'script' output can be fed to the program and have it work correctly.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 May 2009 18:16:53 +0000 (11:16 -0700)]
Print only RSSI when packet CRC is invalid
Packets with invalid CRC usually contain bogus data, so don't print that,
just print out the RSSI which may contain useful data.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 May 2009 18:00:43 +0000 (11:00 -0700)]
Accelerometer-based velocity values are invalid after apogee
Because the orientation of the flight computer relative to the ground is
unknown after apogee, the accelerometer data cannot be integrated to compute
velocity. Main deploy is now based purely on barometric altitude and landing
detection no longer checks for a low velocity value.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 May 2009 17:59:04 +0000 (10:59 -0700)]
Add velocity check for boost detect via accelerometer
Bumping the rocket can cause a brief period of high acceleration, which may
cause a mistaken boost detection. Require both a high acceleration and
reasonable velocity to trigger boost phase.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 13 May 2009 17:58:30 +0000 (10:58 -0700)]
Typo in callsign
Keith Packard [Mon, 11 May 2009 06:11:06 +0000 (23:11 -0700)]
Use recorded accelerometer baseline data in ao_flight_test
With the flight computer recording a long-term average value for the
accelerometer in the flight record, use that to prime the flight test code
when running a log file through the simulator.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 May 2009 06:01:16 +0000 (23:01 -0700)]
Don't re-initialize the landing range data at each apogee detect sample
The landing range values are used only after apogee detect, so we need only
initialize them on the transition from apogee to drogue.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 May 2009 06:00:06 +0000 (23:00 -0700)]
Initialize ao_min_vel with |ao_flight_vel|
As ao_min_vel is stored as an absolute value, it's important to preserve
that invariant, even though we don't expect ao_flight_vel to be negative at
coast.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 May 2009 05:58:31 +0000 (22:58 -0700)]
Decrease telemetry rate on the pad to 1/sec instead of 20/sec
Transmitting telemetry through the radio consumes a significant amount of
battery; reducing the rate to 1/sec will reduce power usage while waiting
for launch.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 May 2009 05:57:19 +0000 (22:57 -0700)]
Increase the initial accel/baro average to 1000 samples
To get an accurate baseline of the launchpad state, take a longer average of
the two sensors as the unit boots up.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Mon, 11 May 2009 05:54:14 +0000 (22:54 -0700)]
Record average accelerometer value in flight start log record
The average accelerometer value cannot be extracted from the log as the
record starts after that is computed. As that drives much of the
accelerometer-based state transition logic, it is an important value to
have, so we log it as part of the flight start record now.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 9 May 2009 17:24:10 +0000 (10:24 -0700)]
Add version command to show product information
Keith Packard [Sat, 9 May 2009 17:23:49 +0000 (10:23 -0700)]
Pad callsign with nuls
Keith Packard [Fri, 1 May 2009 15:14:57 +0000 (08:14 -0700)]
USB spec limits bulk endpoints to 64 byte payload max.
For full-speed devices, bulk endpoints may use 8, 16, 32 or 64 bytes, but no
more.
Keith Packard [Thu, 30 Apr 2009 00:46:56 +0000 (17:46 -0700)]
Use 'char' instead of 'uint8_t' for character data
String and character constants are of char type, so using uint8_t causes
promotion to 16-bit types when comparing the two.
Keith Packard [Thu, 30 Apr 2009 00:46:36 +0000 (17:46 -0700)]
Eliminate incorrect cast in printf string argument
char * is a pointer to a string in the default address space, not a generic pointer
to a string. As such, the compiler (at least 2.9.0) mis-compiles this if the
cast is included.
Keith Packard [Thu, 30 Apr 2009 00:44:41 +0000 (17:44 -0700)]
Correct radio frequency shown in config display.
Radio frequency base is 434.550, not 435.550
Keith Packard [Thu, 30 Apr 2009 00:42:26 +0000 (17:42 -0700)]
Reset landing interval tests at apogee
This moves all of the interval management into the landing test code and
out of the main loop. The interval is reset at apogee to make sure the
sensors produce a stable reading for at least 20 seconds
Bdale Garbee [Sun, 26 Apr 2009 23:53:13 +0000 (17:53 -0600)]
clean up host programs, too
Keith Packard [Sun, 26 Apr 2009 23:04:07 +0000 (16:04 -0700)]
Was missing v_batt in adc dump command
Keith Packard [Sun, 26 Apr 2009 22:38:28 +0000 (15:38 -0700)]
Add manual ignition and igniter test commands
Keith Packard [Sun, 26 Apr 2009 22:38:03 +0000 (15:38 -0700)]
Clean up commands a bit
Keith Packard [Sun, 26 Apr 2009 22:08:58 +0000 (15:08 -0700)]
Clear more files on make clean
Keith Packard [Sun, 26 Apr 2009 22:05:29 +0000 (15:05 -0700)]
Label binaries with product and serial info
Keith Packard [Sun, 26 Apr 2009 08:37:02 +0000 (01:37 -0700)]
Make sure full log is written and flushed on landing.
The final state change to landing is recorded in the logging thread, so have
that turn off logging once it has recorded that state. Then make it go to
sleep.
Keith Packard [Sun, 26 Apr 2009 08:36:53 +0000 (01:36 -0700)]
Clean up monitor output a bit
Keith Packard [Sun, 26 Apr 2009 07:11:32 +0000 (00:11 -0700)]
Add configuration support
Current config variables:
Main deploy altitude above launch (in meters)
Acceleration zero g calibration (manual or automatic)
Radio channel (freq = 435.550MHz + channel * 100kHz)
Callsign (max 8 characters)
Supporting this involved shuffling code around so that the
non-telemetrum builds could include only the stuff they needed.
Keith Packard [Sat, 25 Apr 2009 21:44:33 +0000 (14:44 -0700)]
Allow for slower ADC operation. Add power saving code.
This tries to make the flight computer use less power by disabling USB in
flight mode, lowering the telemetry rate after ascent. It also disables the
RDF beacon during ascent and re-enables it once descent has started.
Keith Packard [Sat, 25 Apr 2009 21:44:04 +0000 (14:44 -0700)]
Allow ADC to be disabled
Keith Packard [Sat, 25 Apr 2009 21:43:23 +0000 (14:43 -0700)]
Place CPU in P0 state while idle
Keith Packard [Sat, 25 Apr 2009 21:42:20 +0000 (14:42 -0700)]
Add RDF beacon and callsign to telemetry
Keith Packard [Sat, 25 Apr 2009 21:40:51 +0000 (14:40 -0700)]
Add radio code to emit a 1kHz tone
Keith Packard [Sat, 25 Apr 2009 20:18:37 +0000 (13:18 -0700)]
Allow the USB system to be disabled/enabled at run-time
Keith Packard [Sat, 25 Apr 2009 20:16:27 +0000 (13:16 -0700)]
Make LED usage depend on target device
Keith Packard [Sat, 25 Apr 2009 20:13:24 +0000 (13:13 -0700)]
Make some functions reentrant to save DSEG space
Keith Packard [Sat, 25 Apr 2009 02:17:37 +0000 (19:17 -0700)]
Add monitor task to flight software
Allows the use of telemetrum in teledongle mode.
Keith Packard [Sat, 25 Apr 2009 02:17:19 +0000 (19:17 -0700)]
Report difference from ground to max altitude at landing
Keith Packard [Sat, 25 Apr 2009 02:16:29 +0000 (19:16 -0700)]
Display data with units while running simulation
Keith Packard [Sat, 25 Apr 2009 02:13:31 +0000 (19:13 -0700)]
Enabling apogee detect via speed: < 200m/s && < max_speed - 50m/s
This change ensures that we actually got going fairly fast, and then slowed
down a bunch before enabling apogee detect. Otherwise, we'll detect apogee
right off the pad as we're not going very fast at that point...
This also adds the 'f' command to show the current flight status on the USB
port.
Keith Packard [Sat, 25 Apr 2009 02:12:28 +0000 (19:12 -0700)]
configure igniter ports, set values to measured ones
Keith Packard [Sat, 25 Apr 2009 02:11:40 +0000 (19:11 -0700)]
Move ao_led_init to end of file to be consistent with other files
Keith Packard [Sat, 25 Apr 2009 02:10:20 +0000 (19:10 -0700)]
Define ao_state_names in ao.h so other people can share
Keith Packard [Sat, 25 Apr 2009 02:09:31 +0000 (19:09 -0700)]
Bump NUM_CMDS to 10
Keith Packard [Sat, 25 Apr 2009 02:09:09 +0000 (19:09 -0700)]
Move beep_init to end of file to be consistent with other files
Keith Packard [Fri, 24 Apr 2009 17:19:31 +0000 (10:19 -0700)]
Update flight algorithm based on data collected from SN-1 Flight 1
This now correctly sequences through the flight data collected from the
first TeleMetrum test flight.
This also completes up the flight algorithm test harness (ao_flight_test),
which runs the flight algorithm on the Linux host from a captured data log.
Keith Packard [Fri, 24 Apr 2009 05:17:44 +0000 (22:17 -0700)]
Add igniters and update flight control algorithm
Keith Packard [Fri, 24 Apr 2009 07:15:09 +0000 (00:15 -0700)]
Avoid ram from 0xfda2 through feff, its funky
Keith Packard [Fri, 24 Apr 2009 05:18:33 +0000 (22:18 -0700)]
remove ao_flight_test until its ready
Keith Packard [Fri, 24 Apr 2009 03:50:07 +0000 (20:50 -0700)]
Add teledongle module
Keith Packard [Thu, 23 Apr 2009 21:26:01 +0000 (14:26 -0700)]
Set telemetry rate to 100ms
Keith Packard [Thu, 23 Apr 2009 21:23:26 +0000 (14:23 -0700)]
Wrong license on ao_monitor.c
Keith Packard [Thu, 23 Apr 2009 21:23:00 +0000 (14:23 -0700)]
Crank up radio to 10dBm
Keith Packard [Wed, 22 Apr 2009 23:03:28 +0000 (16:03 -0700)]
Add COPYING file