Atualizações de Produtos

Novo firmware Mercury V1 - v2.41 - Registro de Alterações

NNeil Bowen10 min de leitura

Novo firmware Mercury está disponível.

O Mercury V1 tem uma nova atualização repleta de melhorias e novos recursos. Esta é a maior atualização de firmware que já fizemos.
O Mercury agora registra dados mais rápido do que nunca e o novo sistema de regras é uma grande melhoria permitindo você fazer muito mais também.

Ferramenta de atualização de firmware

Changelog do Mercury Firmware: v2.3 → v2.41

Changelog para Mercury FW v2.30 (SUBREVISION 125) a Mercury FW v2.41 (SUBREVISION 308)
Houve 183 edições internas incluídas nesta versão.


1. Resumo geral

Velocidade de registro até 300Hz

O Mercury começou com 32Hz e agora pode registrar dados em até 300Hz. A configuração padrão agora é 250Hz com proporção de amostragem Hybrid 1:5 também sendo o padrão.
Isso significa que seu Mercury registrará em 50Hz antes do lançamento, 250Hz durante o lançamento até 5 segundos após o apogeu, depois cai para 50Hz (proporção Hybrid 1:5) durante a descida e volta para 250Hz no pouso uma vez que a altitude cai abaixo de 20 metros.
Isso permite que você veja ótimos detalhes para o empuxo do seu motor e outros eventos quando você ampliar a visualização deles no gráfico. Uma queima de motor de 1 segundo agora tem até 300 pontos de aceleração.

Tamanho de log aumentado e mais eficiente

Aumentamos as amostras máximas do Mercury para cada log de 12000 para 18000.
Agora também armazenamos os logs no dispositivo em formato binário em vez de CSV. Isso oferece uma economia de eficiência de quase 250%.
Os logs são convertidos para CSV quando baixados do dispositivo ou depois que são carregados no AltimeterCloud a partir de sua versão binária. 

Action Rules v6 - substituição completa do sistema anterior

O antigo construtor de regras com seis slots fixos foi removido, e embora fosse capaz, queríamos melhorar isso em algo muito mais capaz.

  • Agora você pode configurar até 12 regras no Mercury V1 e usá-las para acionar saídas, mover ou configurar servos, ou ajustar configurações durante o voo.
  • As condições de regra agora podem ser construídas com grupos e múltiplas condições em cada grupo para comparar conforme você escolher. Isso permite que você crie regras simples ou muito complexas também.
  • Agora você pode acionar regras uma vez por voo, a cada ciclo em que é válida ou em um sistema de tempo, por exemplo até uma vez a cada 3 segundos.
  • O comportamento da regra também pode ser editado para permitir que as regras sejam executadas antes da detecção do lançamento, ignorar regras durante bloqueios, impedir que o dispositivo desligue enquanto a regra está ativa ou agir em uma única saída válida ou exigir 5 saídas válidas em sequência ao longo de 5 ciclos.
  • As regras podem referenciar conjuntos de dados personalizados onde você pode gerar valores computados para referenciar com base em qualquer equação que escolher usar. Permitimos até dois conjuntos de dados personalizados avaliados a cada ciclo no Mercury.

Comportas de segurança de saída (novo, aplica-se a todas as saídas automáticas/orientadas por regras)

O Mercury agora tem novas comportas de segurança de saída que protegem saídas de alta corrente por padrão. Você também pode optar por aplicá-las a outras saídas como servos no sistema de regras.

Encontradas na nova página de configurações de saída, você tem as seguintes opções.

  • Bloqueio de inicialização (segundos) - Esta configuração impede que as saídas disparem até que muitos segundos tenham passado desde ligar o Mercury. O padrão é 10 segundos e você pode configurar 10-600s. Isto não pode ser desativado.
  • Piso de altitude (metros) - Esta configuração impede que as saídas disparem a menos que o lançamento tenha sido detectado e o altímetro esteja pelo menos nesta altitude acima da plataforma de lançamento. O padrão é 50 metros e você pode configurar entre 50 e 150 metros. Isto não pode ser desativado.
  • Atraso de confirmação de lançamento - Esta configuração impede que as saídas disparem até pelo menos muitos segundos após o lançamento. Padrão 2 segundos, você pode configurar de 2 a 500 segundos e isso também não pode ser desativado. 

Você também pode usar o terminal soldado de entrada/saída GP6 para um interruptor ARM. Quando ativado, basta conectar um interruptor entre GP6 e GND no seu Mercury, e quando o interruptor estiver fechado permitirá disparo e quando estiver aberto o bloqueará. 

Expressões de conjunto de dados personalizado

Duas expressões aritméticas definidas pelo usuário, analisadas e recompiladas ao vivo estão disponíveis como fontes de acionamento de regra ("dataset1"/"dataset2").

Sistema de login Web/AP

O servidor webserver do ponto de acesso wifi do dispositivo local agora requer que os usuários façam login. Isso garante que ninguém possa alterar suas configurações se se conectarem à sua rede wifi ou se a encontrarem na rede wifi à qual você está conectado.
Você pode fazer login inserindo a senha de wifi do AP ou pressionando o botão do seu Mercury quando solicitado.

Transmissão de mini-gráfico eNOW

Após um voo, o dispositivo agora pode transmitir um perfil reduzido (240 amostras) sobre ESP-NOW LR para que o voo de um foguete perdido/não recuperado ainda possa ser reconstruído remotamente.
Isso é junto com os dados gerais de resumo de voo que o Mercury pode enviar usando ESP-NOW LR após o voo.
Você normalmente pode receber um sinal ESP-NOW para 200-800 metros dependendo do seu hardware receptor. 

Configuração "Manter energia"

O comportamento pós-salvamento agora é uma configuração explícita de 3 vias independente de eNOW: dormir imediatamente, piscar apogeu final para sempre, ou piscar apogeu por 10 minutos e depois dormir. O apogeu final é persistido em NVS para que um toque rápido no botão enquanto inativo re-pisque sob demanda.

Truepath B 1.0

O Mercury não consegue lidar completamente com nosso algoritmo de filtro Truepath que criamos para o altímetro Nano V1 já que tem menos RAM, porém montamos uma versão leve dele que é praticamente tão boa. Seria difícil ver a diferença em suas saídas de nossos testes.
Agora está também incluído no altímetro Mercury.


2. Alterações de algoritmo de detecção e gravação

  • Taxas de amostragem mais altas: 150/200/250/300Hz adicionados junto com 50/100Hz (250Hz agora o padrão em todas as revisões, acima de 50/100Hz antes). "max_samples" é aumentado de 12000 para 18000. Modos de decimação híbrida estendidos: 1:3, 1:5 (novo padrão), 1:7, 1:10.
  • Rastreamento de piso de lançamento reescrito: era uma média fixa dos slots de buffer de anel mais antigos (que poderiam estar todos em zero logo após a mudança de escape de calibração inicial, causando acionamentos falsos de lançamento); agora um rastreador limitado a taxa de variação inicializado a partir de amostras reais com janela de tempo.
    Isso ajuda a prevenir acionamentos acidentais de lançamento ao empurrar cones de nariz ou puxá-los com pequenos ou nenhum orifício de ventilação.
  • A calibração de voo agora pode sair mais cedo (~6s de dados de pré-buffer reais) em vez de esperar o anel completo ser preenchido, que em altas taxas de amostragem levou ~27 segundos. O piso de calibração estável também funciona com o rastreador de piso de lançamento de taxa de variação limitada para prevenir acionamentos acidentais.
  • A detecção de lançamento é agora um sistema de taxa dupla. Em baixa aceleração, requer um segundo extra acima do limiar de detecção de lançamento para acionar a gravação, e em alta aceleração usa a janela mais curta. Isso ajuda a prevenir detecção acidental de lançamento em eventos de vácuo.
  • Detecção de bloqueio (pico/queda pós-lançamento) redesenhada como um acionador dupla-velocidade baseado em timestamp (taxa de descida sustentada vs. instantânea) em vez de um contador fixo de 3 amostras consecutivas. Isso torna seus pontos de início e fim precisos e previne um bloqueio de tempo de taxa plana impedindo regras mesmo que o evento tenha passado por algum tempo. Também é agora independente de taxa.
  • Detecção de apogeu: janela de estabilização agora decai de 1500ms no burnout para 400ms, protegendo contra o transiente de pressão breve logo no burnout do motor ser confundido com descida.
  • Re-sincronização de IMU: deslocamento máximo de ressincronização agora escala com taxa de amostragem (estava limitado a uma janela fixa de 25/50 amostras sintonizada apenas para 50/100Hz; um voo de 100Hz já tinha sido observado atingindo esse limite).
  • Parada automática de altitude estável reescrita para usar uma janela em tempo real (9s/18s) convertida para deslocamentos de amostra na taxa atual, em vez de contagens de amostra codificadas.
  • Filtro de altitude pós-voo "Truepath": diagnósticos para o filtro são salvos e carregados no AltimeterCloud para a operação dos filtros.
  • Reconstrução de pré-buffer: slots de buffer de anel não preenchidos de um lançamento inicial (antes do buffer de plataforma ser completamente preenchido) agora são reconstruídos como dados de linha de base de plataforma sensata em vez de serem salvos como lixo zerado. Isso apenas afeta aqueles de vocês que são gatilho fácil e conseguem seu lançamento de forma realmente bem logo após ligar o altímetro!

3. Confiabilidade e tratamento de falhas

  • Desligamento térmico de dois níveis substitui o antigo viagem de amostra única a 60°C: ≥80°C sustentado 5s (runaway rápido) ou ≥70°C sustentado 30s (sobre-temperatura sustentada), ambos com cronômetro de parede para que picos breves não causem disparo desnecessário. Opera apenas em modo WiFi.
  • Erros de sensor fatal (sem sensor de pressão / sem IMU encontrado) agora piscam por 10s e depois reinicializam. Os sensores são re-alimentados e as tentativas de inicialização são repetidas.
  • Rastreamento de razão de reset: Razões de reset de boot são capturadas a cada boot (ligação/SW/pânico/timeouts de watchdog/brownout), mais contadores de tempo de vida cumulativos por razão persistidos em NVS e relatados em cada ping.
    Isso permite você saber "o que aconteceu neste boot" versus "todo o histórico de falhas desta unidade."
  • Recuperação de barramento I2C: leituras de sensor agora são envolvidas com timeout; em falha ou timeout, um reset manual de barramento 9-clock/STOP recupera um barramento com falha sem uma re-inicialização completa de sensor (que custaria 50+ms e resetaria ODR durante o voo).
  • Snapshots de RAM/heap capturados em pontos-chave (entrada de modo de voo, primeira iteração do loop de voo, parada acionada por botão) para diagnósticos pós-voo.
  • Tratamento de falha de alocação: Se os buffers de RAM de voo falharem em alocar, o dispositivo será reiniciado para tentar novamente após um período de notificação de 10 segundos no LED de status.
  • Reset de fábrica via manutenção de botão agora genuinamente limpa todas as configurações NVS (anteriormente apenas resetava WiFi para modo aberto/sem senha).
  • Senha de AP: anteriormente um número de 8 dígitos agora uma string de 8 caracteres maiúsculas/minúsculas+dígitos do RNG de hardware com caracteres visualmente ambíguos excluídos. Um comprimento mínimo de 8 caracteres agora é imposto.

4. Rede, nuvem e segurança

  • Todas as chamadas na nuvem movidas de HTTP bruto para um endereço IP resolvido, para HTTPS.
  • Assinatura HMAC-SHA256 (via o periférico HMAC de hardware do ESP32, chaveado a partir de um bloco de chave eFuse) adicionada a chamadas upload/notify/verify, substituindo um estilo simples de checksum. Isso prova que dados do seu dispositivo são do seu dispositivo bem como capturando qualquer corrupção de dados. 
  • Verificação de implantação de chave eFuse: fluxo de verificação e solicitação única para provisionar a chave HMAC única por dispositivo no primeiro conexão bem-sucedida com a internet.
  • Intervalo de atualização do cache DNS estendido de 30 min para 2 horas.
  • Limite de potência de transmissão WiFi alterado de 17dBm para 15dBm bem dentro do limite de 20dBm da UE com antena PCB padrão.

5. Formato de dados e armazenamento

  • Logs de voo movidos de CSV para um formato binário compacto (.bin registros fixos de 34 bytes) tanto para armazenamento quanto para carregamento em nuvem; CSV agora é gerado dinamicamente a partir do log binário quando um .csv é solicitado (download AP ou carregamento em nuvem), via um expansor compartilhado que espelha o CSV antigo exatamente. Isso oferece uma economia de espaço enormemente permitindo mais logs e mais dados serem armazenados no Mercury. 
  • Barra lateral de metadados JSON (2.40+) os antigos arquivos de metadados eram formato texto simples dependendo de números de linha específicos. Formato JSON é uma melhoria. 

6. Controle de freio aerodinâmico

  • Correção de bug: os limiares de "multiplicador de urgência" (70%/40% acima do alvo) estavam sendo comparados contra a linha de base errada (excesso já é uma proporção ×100, então "no alvo" = 100, não 0). Significando que o multiplicador estava permanentemente ativo, em vez de apenas quando significativamente acima do alvo. 
  • Novo: Air_initial_angle para manter uma pré-posição configurada do burnout até que a modulação ativa comece, em vez de ficar completamente retraída sem autoridade em nenhuma direção.
  • Novo: Air_apogee_lock e air_apogee_angle: opcionalmente dirigir e manter um ângulo fixo no apogeu em vez de sempre retrair.
  • As configurações de altitude-alvo e margem de excesso agora são verificadas de alcance antes de serem aplicadas.