Acceleration Sampling Frequency Issues

Aberta
#2,498 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
Meio dia
Facilidade para iniciantes
48/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
cpp
Domínio
embedded-iot

Direção de pesquisa

The problem is in the accelerometer chip driver, where the whole FIFO buffer is read on each sample instead of only the number of valid entries the chip reports. Start by finding the FIFO read path in that driver and check the linked PineTimeSD pull request #22 for the approach the reporter used. Done means each read fetches only the valid readings, so the sampling rate matches the requested 25 Hz; this needs hardware to verify fully.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Verification
  • I searched for similar issues (including closed issues) and found none was relevant.
Introduce the issue

I use a fork of InfiniTime as a data source for my OpenSeizureDetector epileptic seizure detection project.

I noticed that although we were requesting 25 Hz accelerometer sampling frequency, we were receiving data at more like 28 Hz.

The cause seemed to be that each time we read it, we were reading the entire contents of the FIFO buffer on the accelerometer chip, rather than the number of valid readings stated on the chip.

I have fixed this in my fork, but thought you might like to implement the fix in the main InfiniTime firmware too. I also improved the error handling in the accelerometer chip driver as part of the change.

See https://github.com/OpenSeizureDetector/PineTimeSD/pull/22

Preferred solution

You might want to implement the same change (https://github.com/OpenSeizureDetector/PineTimeSD/pull/22) - I don't think it has been fixed in InfiniTime as far as I can see.

I think the 'best' option is to set up accelerometer handling as a separate task and use interrupts to drive the FIFO reading, but that is a bigger change to implement so I haven't done that yet.

Version

No response

Linguagem predominante
C
Estrelas
3.4k
Forks
1.1k
Merge médio
6h 10min
PRs com merge (30d)
5

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de InfiniTimeOrg/InfiniTime

Todas as issues de InfiniTimeOrg/InfiniTime

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.