# SparkMAX

# Visão Geral do SparkMAX

---

O Controlador de Motor REV Robotics SPARK MAX é um controlador de motor tudo-em-um com USB, habilitado para CAN e PWM que pode controlar tanto motores DC 12V com escova, quanto motores DC sem escovas de 12 V. O SPARK MAX é projetado para uso na FIRST® Robotics Competition (FRC), incorporando controle avançado de motor em um pacote pequeno, fácil de usar e acessível. Configure e execute o SPARK MAX através de sua interface USB integrada sem a necessidade de um sistema de controle completo.

<div align="center" id="bkmrk--1"> ![SparkMAX](https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/screenshot-2023-11-08-at-14-02-49.png)</div>## Recursos do SparkMAX:

- Controle de motor com escova e sem escova com sensor
- Interfaces de controle PWM, CAN e USB 
    - PWM/CAN - Conector de 4 pinos JST-PH com trava e chave
    - USB - Tipo C USB
- Configuração e controle via USB 
    - Configuração rápida com um PC
- Modos de controle inteligentes 
    - Controle de velocidade em malha fechada
    - Controle de posição em malha fechada
    - Modo seguidor
- Porta de encoder 
    - Conector de 6 pinos JST-PH com trava e chave
    - Entrada de encoder de sensor Hall de 3 fases
    - Entrada de sensor de temperatura do motor
- Porta de dados 
    - Entrada para Limit Switch
    - Entrada para encoder de quadratura
    - Pino multifuncional
- Botão de modo 
    - Configuração a bordo do tipo de motor e comportamento em repouso (brake/coast)
- LED de status RGB 
    - Feedback detalhado do modo e operação
- Fiação integrada de energia e motor 
    - Fio de silicone ultra-flexível 12 AWG
- Resfriamento passivo

## Conteúdo do Kit:

Os seguintes itens estão inclusos com cada Controlador de Motor SPARK MAX:

- 1 - Controlador de Motor SPARK MAX
- 1 - Cabo de USB-A macho para USB-C
- 1 - Cabo de CAN com conector JST-PH de 4 pinos
- 1 - Cabo único PWM com conector JST-PH de 4 pinos
- 1 - Clipe de retenção de cabo PWM/CAN
- 1 - Tampa de proteção da porta de dados

# Especificações do SparkMAX

A seguinte tabela mostra as especificações mecânicas e de operação do controlador de motor SparkMAX

<div id="bkmrk-aten%C3%87%C3%83o%3A-n%C3%83o-exceda-" style="border-left: 4px solid red; padding: 10px; margin: 10px 0; background-color: #ffebeb;"> **ATENÇÃO:** NÃO exceda as especificações elétricas máximas. Fazer isso causará danos permanentes ao SPARK MAX. </div>### Especificações Elétricas Principais

<table id="bkmrk-par%C3%A2metro-min-typ-ma"><thead><tr><th>Parâmetro</th><th>Min</th><th>Typ</th><th>Max</th></tr></thead><tbody><tr><td>Faixa de Tensão de Operação</td><td>5.5</td><td>12</td><td>24</td></tr><tr><td>Tensão Máxima Absoluta</td><td>-</td><td>-</td><td>30</td></tr><tr><td>Corrente de Saída Contínua</td><td>-</td><td>-</td><td>60\*</td></tr><tr><td>Corrente Máxima de Saída (pico de 2 segundos)</td><td>-</td><td>-</td><td>100</td></tr><tr><td>Frequência de Saída</td><td>-</td><td>20</td><td>-</td></tr></tbody></table>

<div id="bkmrk-%E2%9A%A0%EF%B8%8F-a-opera%C3%A7%C3%A3o-cont%C3%ADn" style="border-left: 4px solid #FFCC00; background-color: #FFF8E5; padding: 10px; margin-bottom: 10px;"> **⚠️** A operação contínua a 60A pode produzir altas temperaturas no dissipador de calor. Tenha cuidado ao manusear o SPARK MAX se ele estiver funcionando com uma corrente mais alta por um período prolongado de tempo. </div><div id="bkmrk-%E2%9A%A0%EF%B8%8F-se-estiver-usando" style="border-left: 4px solid #FFCC00; background-color: #FFF8E5; padding: 10px;"> **⚠️** Se estiver usando uma bateria para alimentar o SPARK MAX, certifique-se de que a tensão totalmente carregada seja inferior a 24V permitindo operação contínua. Algumas químicas e configurações de bateria, incluindo pacotes 6S LiPo, têm uma tensão de carga acima da tensão máxima de operação para o SPARK MAX. </div>### Especificações de Entrada PWM

<table id="bkmrk-par%C3%A2metro-min-typ-ma-1"><thead><tr><th>Parâmetro</th><th>Min</th><th>Typ</th><th>Max</th></tr></thead><tbody><tr><td>Pulso de Entrada Totalmente Reverso †</td><td>-</td><td>1000</td><td>-</td></tr><tr><td>Pulso de Entrada Neutro ††</td><td>-</td><td>1500</td><td>-</td></tr><tr><td>Pulso de Entrada Totalmente Para Frente †††</td><td>-</td><td>2000</td><td>-</td></tr><tr><td>Faixa de Pulso de Entrada Válida</td><td>500</td><td>-</td><td>2500</td></tr><tr><td>Frequência de Entrada</td><td>50</td><td>-</td><td>200</td></tr><tr><td>Timeout de Entrada ‡</td><td>-</td><td>50</td><td>-</td></tr><tr><td>Deadband de Entrada Padrão ‡‡</td><td>-</td><td>5</td><td>-</td></tr><tr><td>Nível Alto de Entrada</td><td>0.5</td><td>0.7</td><td>0.9</td></tr><tr><td>Máximo de Tensão de Entrada</td><td>12</td><td>-</td><td>-</td></tr></tbody></table>

† Escovado: entre as saídas A e B a 100% de ciclo de trabalho.   
Sem escovas: direção A-&gt;B-&gt;C a 100% de ciclo de trabalho.

†† Neutro corresponde a zero de tensão de saída (0 V) e pode ser tanto frenagem quanto inércia, dependendo do modo atual de comportamento em repouso.

††† - Escovado: entre as saídas A e B a 100% de ciclo de trabalho.   
Sem escovas: direção C-&gt;B-&gt;A a 100% de ciclo de trabalho.

‡ - Se um pulso válido não for recebido dentro do período de tempo de espera, o SPARK MAX desativará sua saída.

‡‡ - O deadband de entrada é adicionado a cada lado da largura do pulso neutro. Dentro do deadband, o estado de saída é neutro. O valor do deadband é configurável usando o Cliente de Hardware REV ou através da interface CAN.

### Especificações do Porta de Dados

<table id="bkmrk-par%C3%A2metro-min-typ-ma-2"><thead><tr><th>Parâmetro</th><th>Min</th><th>Typ</th><th>Max</th></tr></thead><tbody><tr><td>Faixa de tensão de entrada digital †</td><td>0</td><td>-</td><td>5</td></tr><tr><td>Tensão de entrada digital-alta †</td><td>1.85</td><td>-</td><td>-</td></tr><tr><td>Tensão de entrada digital-baixa †</td><td>-</td><td>-</td><td>1.36</td></tr><tr><td>Faixa de tensão de entrada analógica ††</td><td>0</td><td>-</td><td>3.3</td></tr><tr><td>Entrada analógica (12bit)</td><td>-</td><td>81</td><td>-</td></tr><tr><td>Corrente de fornecimento de 5V (I5V) ‡</td><td>-</td><td>-</td><td>100</td></tr><tr><td>Corrente de fornecimento de 3.3V (I3.3V)</td><td>-</td><td>-</td><td>30</td></tr><tr><td>Corrente total de fornecimento (I5V + I3.3V)</td><td>-</td><td>-</td><td>100</td></tr></tbody></table>

† - Veja mais detalhes na página da Porta de Dados

†† - Veja mais detalhes na página da Porta de Dados

‡ - Alimentação de 5V é compartilhada entre a porta de dados e de encoder

### Especificações da Porta do Encoder

<table id="bkmrk-par%C3%A2metro-min-typ-ma-3"><thead><tr><th>Parâmetro</th><th>Min</th><th>Typ</th><th>Max</th></tr></thead><tbody><tr><td>Faixa de tensão de entrada digital †</td><td>0</td><td>-</td><td>5</td></tr><tr><td>Tensão de entrada digital-alta †</td><td>1.85</td><td>-</td><td>-</td></tr><tr><td>Tensão de entrada digital-baixa †</td><td>-</td><td>-</td><td>1.36</td></tr><tr><td>Faixa de tensão de entrada analógica ††</td><td>0</td><td>-</td><td>3.3</td></tr><tr><td>Corrente de fornecimento de 5V (I5V) ‡</td><td>-</td><td>-</td><td>100</td></tr><tr><td>Corrente de fornecimento de 3.3V (I3.3V)</td><td>-</td><td>-</td><td>30</td></tr><tr><td>Corrente total de fornecimento (I5V + I3.3V)</td><td>-</td><td>-</td><td>100</td></tr></tbody></table>

† - Veja mais detalhes na página da Porta do Encoder

†† - Veja mais detalhes na página da Porta do Encoder

‡ - Alimentação de 5V é compartilhada entre a porta de dados e de encoder

### Especificações Mecânicas

<table id="bkmrk-par%C3%A2metro-min-typ-ma-4"><thead><tr><th>Parâmetro</th><th>Min</th><th>Typ</th><th>Max</th></tr></thead><tbody><tr><td>Comprimento do corpo</td><td>-</td><td>70</td><td>-</td></tr><tr><td>Largura do corpo</td><td>-</td><td>35</td><td>-</td></tr><tr><td>Altura do corpo</td><td>-</td><td>25.5</td><td>-</td></tr><tr><td>Peso</td><td>-</td><td>113.3</td><td>-</td></tr><tr><td>Calibre do fio de força e motor</td><td>-</td><td>12</td><td>-</td></tr><tr><td>Comprimento do fio de força e motor</td><td>-</td><td>15</td><td>-</td></tr></tbody></table>

# Começando com o SparkMAX



# Começando com o SparkMAX

---
O SPARK MAX é um controlador de motor que pode controlar motores DC com escova e motores DC sem escova. Vindo de fábrica, o MAX usa como padrão o modo Brushless e está pronto para acionar um motor NEO Brushless com sua interface PWM. Nesta seção estão incluídas as etapas básicas para fazer um motor girar usando o REV Hardware Client, bem como informações sobre como configurar seu SPARK MAX.

<p class="callout info">Recomendamos seguir este guia pelo menos uma vez para compreender os principais recursos do SPARK MAX. Este guia também pode servir como conteúdo em caso de qualquer problema enfrentado.</p>

#### Antes de começar
Antes de seguir este guia, o REV Hardware Client deve ser [instalado](https://docs.revrobotics.com/sparkmax/rev-hardware-client/getting-started-with-the-rev-hardware-client#installation-instructions) antes de continuar. O REV Hardware Client é a melhor forma de verificar se o dispositivo está configurado corretamente e é necessário antes de utilizar a interface CAN.

# Conectando o SparkMAX

---

### Materiais necessários:
- Bateria 12V
- Disjuntor Geral de 120A
- PDP ou PDH (Power Distribution Panel ou Hub)
- SPARK MAX
- Motor com escova ou sem escova
- USB tipo C

### Prepare os componentes:

#### Tábua de testes

Usar uma tábua de testes é uma maneira fácil de começar a usar o SPARK MAX e verificar as conexões e o código. Para a instalação inicial do SPARK MAX, recomenda-se uma bancada de teste com um único SPARK MAX, um motor sem escova ou com escova e uma PDP ou PDH devidamente conectado com disjuntor.

#### Conexões elétricas
Os fios de alimentação e do motor são permanentemente conectados ao SPARK MAX e não podem ser substituídos. Portanto tome cuidado para não cortar esses fios muito curtos. É altamente recomendado instalar conectores nesses fios para simplificar as conexões de alimentação e do motor. Um conector comum usado para essa finalidade é o conector Anderson Power Pole. Siga o guia da REV a respeito do [Anderson Power Pole](https://docs.revrobotics.com/sparkmax/tips-and-tricks/anderson-power-pole-connectors) para obter dicas sobre como crimpar adequadamente esses conectores.

<div style="border-left: 4px solid red; padding: 10px; margin: 10px 0; background-color: #ffebeb;">
  <strong>ATENÇÃO:</strong> Certifique-se que tudo está desligado antes de fazer qualquer conexão elétrica
</div>

Conecte os cabos de alimentação integrados do SPARK MAX identificados como V+ (vermelho) e V- (preto) a um canal disponível na PDP ou PDH. Caso seja necessário estender o comprimento dos fios integrados, recomenda-se utilizar fio 12AWG ou maior (número de bitola do fio).

#### Conexão de motores

O primeiro passo é determinar o tipo de motor que você deseja conectar. O SPARK MAX suporta dois tipos de motores: DC com escovas e DC sem escovas. Uma maneira fácil de determinar o tipo de motor é observar o número de fios primários (maiores) do motor. Os motores escovados possuem apenas 2 fios primários de motor (vermelho e preto), enquanto os motores sem escova possuem 3 fios primários (vermelho, preto e branco) e fios de sensor menores a mais.

<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/untitled-1.jpg alt="motores" width="65%" height="50%" align=center />
</p>

#### Conexões Motor NEO
Conecte os três fios do motor; vermelho, preto e branco, aos fios de saída do SPARK MAX correspondentes identificados como A (vermelho), B (preto) e C (branco).

<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/screenshot-2023-11-08-at-17-20-11.png alt="conection spark" width="65%" height="50%" align=center />
</p>

Em seguida, conecte o cabo do codificador do NEO ou NEO 550 à porta identificada como ENCODER logo acima dos fios de saída.

<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/screenshot-2023-11-08-at-17-23-46.png alt="encoder port" width="65%" height="50%" align=center />
</p>

<div style="border-left: 4px solid #FFCC00; background-color: #FFF8E5; padding: 10px; margin-bottom: 10px;">
  <strong>⚠️</strong> O cabo do sensor do encoder é necessário para o controle de motores sem escovas com SPARK MAX. O motor não vai girar sem ele.
</div>

#### Conexões com Motores com escova

Conecte os dois fios do motor, M+ (vermelho) e M- (preto), aos fios de saída SPARK MAX identificados como A (vermelho) e B (preto).

O terceiro fio de saída, identificado como C (branco), não é usado ao controlado um motor com escovo e deve ser isolado. Recomendamos amarrá-lo com um zip e cobrir a ponta com um pedaço de fita isolante. Não corte este fio caso deseje usar um motor sem escova no futuro. No exemplo abaixo, o fio extra do motor não utilizado é isolado pelo conector branco e preso no bloco.

<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/screenshot-2023-11-08-at-17-55-58.png alt="com escova" width="65%" height="50%" align=center />
</p>

#### Verifique a conexão
Verifique cuidadosamente todas as conexões antes de continuar e cheque se todas as cores correspondem entre si. O SPARK MAX pode ser permanentemente danificado se a conexão de alimentação for invertida.

<p class="callout info">Deixe a CAN desconectada agora, vamos fazer a conexão depois.</p>

# Faça Girar!

---
### Ligar
Agora que o dispositivo SparkMAX está conectado e as conexões foram checadas, ligue o robô. Você deveria ver o SparkMAX piscando lentamente, caso for um dispositivo novo a cor será magenta. Se o LED estiver apagado, ou estar piscando outra combinação, siga a cartilha do Status do LED para a procura de erros.
<p class="callout info"> Se você estiver usando um motor com escova, poderá ver um erro no sensor. Isso é esperado até que você configure o dispositivo para aceitar um motor com escovas nas etapas a seguir.</p>

### Conecte ao SparkMAX
Plugue o cabo USB C no Spark e ao seu computador e inicie o [Rev Hardware Client](https://docs.revrobotics.com/sparkmax/rev-hardware-client/getting-started-with-the-rev-hardware-client#installation-instructions). Selecione o SparkMAX entre os hardwares conectados:
<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/screenshot-2023-11-08-at-18-15-44.png alt="module" width="80%" height="x%" align=center />
</p>

<p class="callout info">Se você não consegue ver o SPARK MAX, certifique-se de que o SPARK MAX não esteja sendo usado por outro aplicativo
. Em seguida, desconecte o SPARK MAX do computador e conecte-o novamente.</p>

### Setup e configuração básica

Antes que qualquer parâmetro possa ser alterado, você deve primeiro atribuir um CAN ID exclusivo ao dispositivo. Pode ser qualquer número entre 1 e 63. Após definir um ID CAN exclusivo, a interface será atualizada e permitirá que você altere outros parâmetros.
<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/screenshot-2023-11-08-at-18-21-59.png alt="" width="80%" height="x%" align=center />
</p>

<p class="callout info">Eventualmente você pode configurar uma rede CAN em sua bancada de testes ou robô. Certifique-se de que cada dispositivo na rede tenha um CAN ID exclusivo. É útil etiquetar cada dispositivo com seu número de identificação para ajudar na solução de problemas.</p>

#### Definir Tipo De Motor
Se você estiver usando um NEO ou NEO 550, verifique se o tipo de motor está definido como REV NEO Brushless, o tipo de sensor é *Hall Effect* e o LED está piscando em magenta ou ciano.
<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/screenshot-2023-11-08-at-18-29-19.png alt="" width="80%" height="x%" align=center />
</p>

<p class="callout info">Se você ver um pisque do Spark que signifique uma Sensor Fault, confira se o cabo de encoder está conectado</p>

Se você estiver operando um motor com escova, defina o tipo de motor como *Brushed*, o tipo de sensor como *No Sensor* e verifique se o LED está piscando em Amarelo ou Azul.
<p align=center>
<img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/screenshot-2023-11-08-at-18-33-53.png alt="" width="80%" height="x%" align=center />
</p>

#### Limitando Corrente

Há duas maneiras de proteger os motores do seu robô de danos elétricos em situações de alta corrente: Fusíveis e a Configuração do Smart Current Limit do SPARK MAX. Para proteger seus motores de correntes muito altas, é uma boa prática limitar sua corrente tanto com o Smart Current Limit do SPARK MAX quanto com um disjuntor adequadamente classificado.

Disjuntores ou fusíveis, embora uma parte extremamente importante da fiação e segurança de um robô, são projetados apenas para disparar a uma temperatura específica, após um determinado período de tempo, para proteger o sistema elétrico de incêndios ou outros perigos elétricos. Por isso, recomendamos definir um Smart Current Limit para proteger seus motores de danos devido a altas correntes.

O Controlador de Motor SPARK MAX inclui um recurso de Limite de Corrente Inteligente (Smart Current Limit) que pode ajustar a saída aplicada ao motor para manter uma corrente de fase constante.

Direto da caixa, a configuração padrão do Limite de Corrente Inteligente do SPARK MAX é 80A para qualquer motor que você use. Recomendamos utilizar nossos dados de teste de rotor (a parte que gira do motor) bloqueado ou a tabela abaixo para decidir o que definir para o Limite de Corrente Inteligente do seu robô: Teste de Rotor Bloqueado para o [NEO](https://www.revrobotics.com/neo-brushless-motor-locked-rotor-testing/) e [NEO 550](https://www.revrobotics.com/neo-550-brushless-motor-locked-rotor-testing/).

<p class="callout warning">Lembre-se de que algumas configurações, como Limite de Corrente Inteligente, devem ser gravadas no flash via código ou no Cliente de Hardware para serem retidas através de um ciclo de energia do SPARK MAX.</p>

##### Limites de Corrente Sugeridos

Seu limite de corrente ideal pode variar com base na sua aplicação específica, mas esses valores podem ser usados como um ponto de partida para reduzir a chance de uma sobrecarga no seu motor à medida que você começa a ajustar o Limite de Corrente Inteligente do seu mecanismo.

| Tipo de Motor | Faixa de Limite de Corrente |
|---------------|-----------------------------|
| NEO  | 40A - 60A |
| NEO 550 | 20A - 40A |

<p class="callout warning">Aviso: Definir limites de corrente fora das faixas sugeridas acima pode causar sobrecarga não intencional e danos graves aos componentes.</p>

<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/smartcurrentlimit.png alt="module" width="80%" height="x%" align=center />
</p>

### Salvar as Configurações

As configurações devem ser salvas para que o SPARK MAX lembre-se de sua nova configuração quando o robô ser desligado. Para fazer isso, pressione o botão `Burn Flash` na parte inferior da página. Isso levará alguns segundos para salvar, indicado pelo símbolo de carregamento no botão.

<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/spark-max-sm-burn-flash.png alt="module" width="80%" height="x%" align=center />
</p>

Qualquer configurações salvas dessa forma serão lembradas quando o dispositivo for ligado novamente. Você sempre pode restaurar os padrões de fábrica se precisar redefinir o dispositivo.

### Girar o Motor

<p class="callout warning">Antes de executar qualquer motor, certifique-se de que todos os componentes estão em um estado seguro, que o motor está em um espaço seguro e que todos próximos estejam cientes. Motores da FRC são muito potentes e podem rapidamente causar danos a pessoas e propriedades.</p>

<p class="callout info">Mantenha o cabo CAN desconectado durante todo o teste. Por razões de segurança, o Cliente de Hardware REV não executará o motor se o roboRIO estiver conectado. Se o roboRIO estiver conectado, reinicie o SPARK MAX.</p>

Para girar o motor, vá para a aba Run, mantenha todas as configurações padrão e pressione `Run Motor`. O setpoint é 0 por padrão, o que significa que o motor está parado (0% de potência). Quando você pressiona `Run`, você deve ver o LED mudar de piscar lentamente para sólido, indicando que o motor está ocioso.

<p align=center>
  <img src=https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/spark-max-run-single-device.png alt="module" width="80%" height="x%" align=center />
</p>

Aumente **lentamente** o deslizante do setpoint. O motor deve começar a girar e você deve ver um padrão de piscar verde proporcional à velocidade que você definiu para o motor. Diminua lentamente o deslizante. O motor deve girar em reverso, e você deve ver um padrão de piscar vermelho proporcional à velocidade que você definiu para o motor.

Se você não conseguir girar o motor, visite o guia de solução de problemas.

# Padrões do LED de Status

O SPARK MAX indicará informações importantes de status em seu LED de STATUS multicolorido localizado no topo do dispositivo. A tabela a seguir mostra cada estado e o padrão de cor do LED correspondente.

<p class="callout info">Fique claro alguns termos antes de consultar a tabela:  
 Brake -&gt; Motor freia quando está parado   
Coast -&gt; Motor fica solto quando parado </p>

### Operação Padrão

<table id="bkmrk-modo-de-opera%C3%A7%C3%A3o-mod"><thead><tr><th>Modo de Operação</th><th>Modo Ocioso</th><th>Estado</th><th>Cor/Padrão</th><th>Gráfico</th></tr></thead><tbody><tr><td>Motor COM Escova</td><td>Brake</td><td>Sem Sinal</td><td>Piscar Azul</td><td>[![ezgif.com-gif-maker.gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker.gif)</td></tr><tr><td></td><td></td><td>Sinal Válido</td><td>Azul Sólido</td><td>[![ezgif.com-gif-maker (1).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-1.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-1.gif)</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td>Coast</td><td>Sem Sinal</td><td>Piscar Amarelo</td><td>[![ezgif.com-gif-maker (2).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-2.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-2.gif)</td></tr><tr><td></td><td></td><td>Sinal Válido</td><td>Amarelo Sólido</td><td>[![ezgif.com-gif-maker (3).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-3.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-3.gif)</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Motor SEM Escova</td><td>Brake</td><td>Sem Sinal</td><td>Piscar Ciano</td><td>[![ezgif.com-gif-maker (4).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-4.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-4.gif)</td></tr><tr><td></td><td></td><td>Sinal Válido</td><td>Ciano Sólido</td><td>[![ezgif.com-gif-maker (5).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-5.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-5.gif)</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td>Coast</td><td>Sem Sinal</td><td>Piscar Magenta</td><td>[![ezgif.com-gif-maker (6).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-6.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-6.gif)</td></tr><tr><td></td><td></td><td>Sinal Válido</td><td>Magenta Sólido</td><td>[![ezgif.com-gif-maker (7).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-7.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-7.gif)</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Avanço Parcial Para Frente</td><td></td><td></td><td>Piscar Verde</td><td>[![ezgif.com-gif-maker (8).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-8.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-8.gif)</td></tr><tr><td>Avanço Completo Para Frente</td><td></td><td></td><td>Verde Sólido</td><td>[![ezgif.com-gif-maker (9).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-9.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-9.gif)</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Avanço Parcial Para Trás</td><td></td><td></td><td>Piscar Vermelho</td><td>[![ezgif.com-gif-maker (10).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-10.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-10.gif)</td></tr><tr><td>Avanço Completo Para Trás</td><td></td><td></td><td>Vermelho Sólido</td><td>[![ezgif.com-gif-maker (11).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-11.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-11.gif)</td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Limite Para Frente</td><td></td><td></td><td>Piscar Verde/Branco</td><td>[![ezgif.com-gif-maker (12).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-12.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-12.gif)</td></tr><tr><td>Limite Para Trás</td><td></td><td></td><td>Piscar Vermelho/Branco</td><td>[![ezgif.com-gif-maker (13).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-13.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-13.gif)</td></tr></tbody></table>

### Identificação, Atualização e Recuperação

<table id="bkmrk-modo-cor%2Fpadr%C3%A3o-gr%C3%A1f"><thead><tr><th>Modo</th><th>Cor/Padrão</th><th>Gráfico</th></tr></thead><tbody><tr><td>Identificação de Dispositivo</td><td>Piscar Rápido Branco/Magenta</td><td>[![ezgif.com-gif-maker (14).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-14.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-14.gif)</td></tr><tr><td>Firmware CAN Bootloader Atualizando</td><td>Piscar Branco/Amarelo (v1.5.0) Piscar Verde/Magenta (v1.4.0)</td><td>[![ezgif.com-gif-maker (15).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-15.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-15.gif)</td></tr><tr><td>Firmware CAN Bootloader tentando novamente</td><td>Piscar Branco/Azul</td><td>[![ezgif.com-gif-maker (16).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-16.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-16.gif)</td></tr><tr><td>USB DFU (Atualização de Firmware do Dispositivo)</td><td>Escuro (LED desligado)</td><td>[![ezgif.com-gif-maker (17).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-17.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-17.gif)</td></tr><tr><td>Modo de Recuperação</td><td>Escuro (LED desligado)</td><td>[![ezgif.com-gif-maker (17).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-17.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-17.gif)</td></tr></tbody></table>

### Condições de Falha

<table id="bkmrk-condi%C3%A7%C3%B5es-de-falha-c"><thead><tr><th>Condições de Falha</th><th>Condição</th><th>Cor/Padrão</th><th>Gráfico</th></tr></thead><tbody><tr><td>12V Ausente</td><td>O motor não funcionará se alimentado apenas por USB. Este código de LED adverte o usuário desta condição.</td><td>Piscar Lento Laranja/Azul</td><td>[![ezgif.com-gif-maker (18).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-18.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-18.gif)</td></tr><tr><td>Falha no Sensor</td><td>Isso pode ocorrer se o tipo de sensor   
 estiver configurado incorretamente,  
 o cabo do sensor não estiver conectado ou   
danificado, ou se um sensor que não  
 seja o sensor do motor estiver conectado.</td><td>Piscar Lento Laranja/Magenta</td><td>[![ezgif.com-gif-maker (19).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-19.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-19.gif)</td></tr><tr><td>Falha no Gate Driver</td><td>Uma falha relatada pelo circuito eletrônico  
 interno. Se este código de LED persistir  
 após o ciclo de energia (ligar e desligar)do controlador, contate a stemOS.</td><td>Piscar Lento Laranja/Ciano</td><td>[![ezgif.com-gif-maker (20).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-20.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-20.gif)</td></tr><tr><td>Falha no CAN</td><td>A falha do CAN será mostrada após  
 a primeira vez que o dispositivo for  
 conectado à porta CAN e uma falha   
 ocorrer mais tarde. Verifique sua fiação  
 CAN se você observar esta falha.</td><td>Piscar Lento Laranja/Amarelo</td><td>[![ezgif.com-gif-maker (21).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-21.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-21.gif)</td></tr><tr><td>Firmware Corrompido (recuperar usando o Modo de Recuperação)</td><td>O firmware falhou ao carregar.</td><td>Escuro (LED desligado)</td><td>[![ezgif.com-gif-maker (17).gif](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-17.gif)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/ezgif-com-gif-maker-17.gif)</td></tr></tbody></table>

# Solução de Problemas

---

Muitos problemas podem ser resolvidos por meio de solução de problemas sistemática sem a necessidade de contatar o suporte da stemOS ou REV. Olhe as dicas de solução de problemas abaixo para ajudar a determinar a causa do problema que você está vendo. Caso precise nos contatar, descrever os passos que você tomou em detalhes nos ajudará a colocá-lo em funcionamento rapidamente.

### Dicas Gerais de Solução de Problemas

A chave para uma solução de problemas eficaz é isolar o problema. Muitos problemas podem apresentar o mesmo sintoma, então eliminar pontos de falha um por um é crítico para encontrar a causa raiz.

### Isolar Problemas por Eliminação

Se possível, tente eliminar uma seção do sistema ao solucionar problemas. Por exemplo:

- Elimine um problema de código ou de conexão de controle:
    
    
    - Use o Cliente de Hardware REV para executar o SPARK MAX via USB.
    - Esteja ciente da função de bloqueio do CAN do SPARK MAX. Se ele foi conectado ao barramento CAN do roboRIO, uma função de segurança dentro do SPARK MAX a comunicação USB será bloqueada. Desconectar do barramento CAN e reiniciar o MAX vai liberar o bloqueio.
    - Se esta for a primeira vez que você está executando o REV Hardware Client, veja o [Guia de Início ao REV Hardware Client](https://docs.revrobotics.com/sparkmax/rev-hardware-client/getting-started-with-the-rev-hardware-client) para um tour do software e suas características.
- Elimine um problema de código:
    
    
    - Crie um programa de teste simples usando um Código de Exemplo do SPARK MAX.
- Elimine um problema mecânico:
    
    
    - Remova o motor do mecanismo ou use um motor diferente que gire livremente.

### Usar a Driver Station

Um conjunto de ferramentas extremamente útil pode ser encontrado na Driver Station:

- Use o [Visualizador de Log da Driver Station](https://docs.wpilib.org/en/latest/docs/software/driverstation/driver-station-log-viewer.html)
    - Olhe para a corrente do canal da PDH:
    - Uma corrente maior que a esperada em um canal pode indicar problemas mecânicos e elétricos.
    - Olhe para a tensão da bateria:
    - Grandes quedas na tensão da bateria no momento de um problema podem indicar problemas de saúde da bateria que causam brownouts.
- Use a [Aba CAN/Energia](https://docs.wpilib.org/en/latest/docs/software/driverstation/driver-station.html#can-power-tab)
    - Olhe para a Utilização do Barramento CAN.
    - Olhe para Falhas no CAN.
    - Olhe para Falhas de Comunicação:
    - Falhas de comunicação podem afetar o SPARK MAX. Se ele perder a comunicação com o roboRIO, ele irá para um estado de desativado. Isso pode parecer uma falha momentânea em um motor girando se as falhas de comunicação são infrequentes e irregulares.

### Usar as APIs

Também é muito útil registrar ou plotar valores operacionais internos do SPARK MAX. Esses valores podem ser acessados usando as APIs do SPARK MAX na sua programação. Alguns valores úteis como exemplo para registrar:

- getAppliedOutput() 
    - Este valor mostrará o que o SPARK MAX está realmente aplicando à saída do motor. Isso pode te ajudar a identificar problemas com o ajuste de controle de malha fechada.
- getOutputCurrent() 
    - Este valor mostrará a corrente de saída indo para as fases do motor. A corrente de saída não será sempre a mesma que a corrente de entrada medida pela PDH. Saber a corrente de saída é útil para diagnosticar problemas de limite de corrente se os motores estiverem superaquecendo.
- getBusVoltage() 
    - Uma maneira de medir a tensão de entrada diretamente no controlador.
- getStickyFaults() 
    - Uma falha persistente pode identificar um erro que você tenha observado no seu robô

## Falhas e Problemas Comuns

Abaixo você encontrará alguns passos de solução de problemas para algumas falhas e problemas comuns relacionados à operação do SPARK MAX.

### Motor não está girando

[![Imagem 30-11-2023 às 17.12.jpg](https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/imagem-30-11-2023-as-17-12.jpg)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/imagem-30-11-2023-as-17-12.jpg)

### Falha no Gate Driver

[![Group 1.png](https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/group-1.png)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/group-1.png)

### Falha de Sensor

[![Group 1 (1).png](https://docs.stemos.com.br/uploads/images/gallery/2023-11/scaled-1680-/group-1-1.png)](https://docs.stemos.com.br/uploads/images/gallery/2023-11/group-1-1.png)