Keith Packard [Sat, 10 Apr 2010 00:51:01 +0000 (17:51 -0700)]
Only have the slave return a packet if it received one.
When the receive is aborted to switch modes, it's important to not
immediately re-acquire the radio and try to send a packet as the
aborting thread won't know to kick the receiver again.
This prevents the 'C' command from locking up as it tries to stop the
packet slave before turning on the transmitter.
Keith Packard [Fri, 9 Apr 2010 00:28:17 +0000 (17:28 -0700)]
When changing RESET line, delay 20ms
The GPS data sheet suggests a 1uF cap on the reset line to ensure it
is held low long enough for the power supply to come up to voltage. TM
v1.0 loads a 0.001uF cap there, but in case that isn't large enough,
it could be replaced with the larger one. This change makes sure that
even with that larger value, the debugging link will be able to reset
the target.
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.