Keith Packard [Mon, 5 Apr 2010 02:48:50 +0000 (19:48 -0700)]
Make ao_radio_idle keep trying to get the radio to idle.
Attempting to abort a radio operation could lead to a hang if the user
of the radio jumped in and started using it again before the task
attempting to abort woke up. This change just keeps smacking the radio
until the radio goes idle long enough to detect it.
Keith Packard [Fri, 12 Mar 2010 18:37:32 +0000 (10:37 -0800)]
Document the ao-dumplog '--remote' flag for radio-link downloads
The --remote (or -R) flag uses TeleDongle to fetch data over the radio
command link from TeleMetrum. It's been there for a while, but the man
page failed to mention it.
Keith Packard [Fri, 12 Mar 2010 18:35:12 +0000 (10:35 -0800)]
Round radio calibration value instead of truncating
The radio calibration function in the bring-up code was truncating the
radio calibration value which caused the resulting frequency to
always measure above the target frequency, instead of trying to get as
close as possible. This change will result in a closer frequency
match, but may sometimes be below the target frequency.
Keith Packard [Sat, 27 Feb 2010 23:14:04 +0000 (15:14 -0800)]
Fix up LED colors for each product.
Different products assign different color LEDs to the two available
LED drivers (P1_0, P1_1). Make the LED color pin assignments
per-product (in ao_pins.h), then deal with not always having a green LED.
Keith Packard [Sat, 27 Feb 2010 23:11:44 +0000 (15:11 -0800)]
Eliminate deadlock when writing config from radio link
Writing the 'Saved\r\n' string would fill the packet buffer and cause
a flush to occur, which would need to wait for the radio link to
receive and transmit a packet. The radio link always re-fetches the
radio channel number when lighting up the radio, so it need to look in
the config space. If the config mutex was held by the config writing
process while the radio was trying to get the channel number, then
we'd get a deadlock.
Keith Packard [Fri, 26 Feb 2010 00:33:34 +0000 (16:33 -0800)]
Allow product names to have suffixes (like board revisions)
When looking for a board by product name, just look at the prefix of
the name instead of requiring an exact match. This will allow products
to have board version suffixes.
Keith Packard [Sun, 21 Feb 2010 04:22:16 +0000 (20:22 -0800)]
Change altos build process to support per-product compile-time changes
This creates per-product subdirectories and recompiles everything for
each product, allowing per-product compile-time changes for things
like peripheral pin assignments and attached serial devices.
Keith Packard [Sun, 14 Feb 2010 00:42:27 +0000 (16:42 -0800)]
Log GPS data on pad after boost detect.
This wakes up the two GPS reporting tasks and gets them to report out
any existing GPS data to the log file. To make sure the timestamps in
that GPS data are accurate, this also records GPS time on receipt of
the GPS data instead of when that is logged.
Keith Packard [Mon, 11 Jan 2010 00:31:50 +0000 (16:31 -0800)]
Switch to using internal cc1111 temperature sensor
v0.2 has no temperature sensor, and several of the v0.1 boards didn't
get a temperature sensor loaded. Use the internal temperature sensor
on the cc1111 in all cases instead.
Keith Packard [Sun, 10 Jan 2010 06:06:19 +0000 (22:06 -0800)]
Force idle mode by shorting the SPI clock to ground at boot time.
This allows you to override the flight mode detection code in case the
accelerometer calibration is broken somehow. Hold the SPI clock shoted
to ground until the LED comes on, then remove it.
Keith Packard [Sun, 20 Dec 2009 04:32:18 +0000 (20:32 -0800)]
Remove dbg driver code from telemetrum/teledongle
The only board with debug outputs is the TI dongle at this point, so
the debug modules were disabled in TM and TD some time
ago. Unfortunately, the code was not removed then.
Keith Packard [Sat, 19 Dec 2009 19:34:16 +0000 (11:34 -0800)]
Use ao_radio_get/ao_radio_put in packet code.
The ao_radio_get function both acquires the mutex *and* configures the
radio channel and frequency. Failing to use this in the packet code
would leave the radio frequency unconfigured.
Keith Packard [Sun, 6 Dec 2009 03:50:38 +0000 (19:50 -0800)]
Allow radio calibration to be set from ao-load
This moves the initial radio calibration value into const memory where
it will be used if no eeprom configuration value is available, either
on an unprogrammed board with eeprom or a device without an eeprom.
Keith Packard [Sat, 5 Dec 2009 07:38:26 +0000 (23:38 -0800)]
Add radio calibration configuration.
The crystal we use is only good for 20ppm, which generates a fairly
significant error bounds at our RF frequency. This commit adds a
configuration variable that sets the RF frequency control variable so
that the output frequency can be adjusted.