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
Keith Packard [Wed, 22 Apr 2009 22:55:01 +0000 (15:55 -0700)]
Clean up TeleTerra files
Keith Packard [Wed, 22 Apr 2009 22:53:55 +0000 (15:53 -0700)]
simplify ao_time function
Keith Packard [Wed, 22 Apr 2009 22:53:46 +0000 (15:53 -0700)]
One line radio status
Keith Packard [Wed, 22 Apr 2009 22:49:16 +0000 (15:49 -0700)]
Add new binaries to .gitignore
Keith Packard [Wed, 22 Apr 2009 22:49:00 +0000 (15:49 -0700)]
Speed up dbg port bit frobbing
Keith Packard [Wed, 22 Apr 2009 22:48:28 +0000 (15:48 -0700)]
Use sdcc from path
Keith Packard [Wed, 22 Apr 2009 22:48:14 +0000 (15:48 -0700)]
Clean up task list formatting
Keith Packard [Wed, 22 Apr 2009 22:47:57 +0000 (15:47 -0700)]
Control radio monitoring with the M command
Keith Packard [Tue, 21 Apr 2009 09:07:24 +0000 (02:07 -0700)]
Clean up telemetry now that all packets are the same
Keith Packard [Tue, 21 Apr 2009 09:07:08 +0000 (02:07 -0700)]
Add longer debug delays to reset/debug_mode entry
Keith Packard [Tue, 21 Apr 2009 08:17:03 +0000 (01:17 -0700)]
Fix up fancy dbg stuff. Add teleterra initial bits.
The dbg stuff needed a bit of help to actually walk the tables; it appears
that complex expressions confuse sdcc.
This also adds primitive teleterra bits, but no UI, etc.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 21 Apr 2009 06:33:41 +0000 (23:33 -0700)]
Add radio support. Build separate executables for TeleMetrum and the TI dongle
Ok, way too big a patch, but things were in rough shape.
This patch adds support for the radio, both transmit and receive.
Then, because I could no longer run the TeleMetrum code on the TI
dongle, I ended up building a separate image for the TI board, which
involved creating a mechanism for having multiple command sets and splitting
code for different functions into different files.
Keith Packard [Sun, 19 Apr 2009 06:19:24 +0000 (23:19 -0700)]
Start using pdata area for less-frequently used data
Keith Packard [Sun, 19 Apr 2009 06:19:05 +0000 (23:19 -0700)]
Slow down panic presentation
Keith Packard [Sun, 19 Apr 2009 06:17:45 +0000 (23:17 -0700)]
Parse GPS data locally. Add 'g' command to display recent GPS results.
This parses the GPS GGA message and stores it in a global variable,
protected by a mutex.
Keith Packard [Sun, 19 Apr 2009 06:16:01 +0000 (23:16 -0700)]
Add task names and 'T' command to show task status.
The T command shows the current wchan and PC for each task in the system.
Keith Packard [Sun, 19 Apr 2009 02:32:18 +0000 (19:32 -0700)]
Fix GPL version at 2
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Sat, 18 Apr 2009 06:38:14 +0000 (23:38 -0700)]
Add gps, debug dongle support and pressure alt tables
GPS also pulled in serial support. The altitude tables take raw 11-bit
pressure sample numbers and convert them to standard pressure altitude
values.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Wed, 15 Apr 2009 21:25:26 +0000 (14:25 -0700)]
Move a bunch of variables from __data to __xdata
Keith Packard [Wed, 15 Apr 2009 04:25:15 +0000 (21:25 -0700)]
Slow down panic code, disable interrupts
Keith Packard [Wed, 15 Apr 2009 04:24:25 +0000 (21:24 -0700)]
Keep reporting flight state while it changes
Keith Packard [Wed, 15 Apr 2009 04:23:55 +0000 (21:23 -0700)]
use red LED to indicate system startup
Keith Packard [Wed, 15 Apr 2009 04:23:13 +0000 (21:23 -0700)]
Use ao_ee_flush_internal while holding mutex
Keith Packard [Wed, 15 Apr 2009 04:22:56 +0000 (21:22 -0700)]
Leave beeping and lights to the flight code
Keith Packard [Wed, 15 Apr 2009 04:22:31 +0000 (21:22 -0700)]
Make mutex functions reentrant
Keith Packard [Wed, 15 Apr 2009 02:08:01 +0000 (19:08 -0700)]
Add in existing flight pieces: flight/report/log
These pieces come from the old telemetrum firmware.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 14 Apr 2009 21:21:56 +0000 (14:21 -0700)]
Add eeprom driver and command loop
This involved adding dma control and a mutex implementation.
Signed-off-by: Keith Packard <keithp@keithp.com>
Keith Packard [Tue, 14 Apr 2009 18:04:09 +0000 (11:04 -0700)]
Switch from --model-large to --model-small
This shrinks the application quite a bit, and should make it faster as well.
Signed-off-by: Keith Packard <keithp@keithp.com>