Skip to content

V2.10 Adds support for continuous mode in accelerometer - #41

Open
lauralindzey wants to merge 19 commits into
mainfrom
V2.10_rc1
Open

V2.10 Adds support for continuous mode in accelerometer#41
lauralindzey wants to merge 19 commits into
mainfrom
V2.10_rc1

Conversation

@lauralindzey

Copy link
Copy Markdown
Contributor

Adds support for continuous mode in accelerometer, controlled by a configuration flag.

This requires:

  • V1.1 accelerometer firmware
  • An accelerometer board that has been modified to be continuously powered from the backplane
  • V1.5 programmer

I added these while trying to debug over-the-air configuration updates.
They should not be part of the deployed configuration.
(If I'll be editing these, want it to be clang-format-clean)
First step in moving logic for calculationg priority out of persistent_ram.c and
back into the functions that are actually populating the message.
Previously, if the queue got full it would just insert a new message
in the first slot with a lower priority, rather than replacing the
overall lowest priority message.
NYI: any logic about changing number of calls based on priorities
…uous mode.

In continuous accelerometer sampling mode, the accel thread should request
spectra from the accel board as close to the end of the duty cycle as
possible, rather than at the start of the cycle. So, the accel thread
now makes an additional `suspend` call in continuous mode.

Our architecture doesn't make it easy to have this be driven by
sending/filling the SBD messages, so instead, key it off of approaching
the end of the GNSS period. If the accelerometer is running at 4Hz/4096 samples
(or a time-equivalent combination), this may mean not grabbing a spectra on
the first duty cycle.

In the case that the GPS thread exited with an error, we will resume the
accelerometer thread if it hasn't finished, in order to at least query
the board for spectra.
The goal is to have the highest N spectra living in the controller's
persistent RAM, ready to be transmitted, where N is chosen to be a few more than the number of iridium messsages that could be transmitted in
a single duty cycle.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant