sábado, 23 de maio de 2026

Do Erro de Hardware à Sobrevivência: Emulando o Logitech G29 com Duas Blue Pills (STM32)





Salve Galera bem vindo a mais um video e ..... Não pera, Bom ..Se você acompanha o canal e o blog, sabe que eu decidi encarar um dos desafios mais insanos de manutenção e modificação de hardware até agora: trazer um Logitech G29 de volta à vida do zero, eliminando a placa-mãe original queimada e substituindo todo o cérebro dele por uma solução extremamente robusta baseada em 32-bits.

Hoje trago um passo a passo das experiencias.. um Artigo completo com o que já conseguimos fazer rodar, os materiais que usei, os Problemas que desvendamos na bancada e o que ainda estamos correndo atrás para atingir os 100% de funcionamento..

Conceito e os Materiais Necessários

Para criar um sistema de Force Feedback (FFB) potente, preciso e sem input lag, os tradicionais Arduinos de 8-bits (como o Leonardo ou ProMicro) acabam gargalando. Por isso, a escolha ideal para o projeto foi migrar para a arquitetura ARM de 32-bits usando duas placas Blue Pill (STM32F103C8T6) trabalhando em conjunto...Esse projeto não é meu e ele ja existe na comunidade, vou deixar o link abaixo para que possam acessar e fazer o de voces tbm , no entanto Estou com dificuldades de colocar a matriz de botões pra Funcionar.. mas a gente ta correndo atras e é questão de tempo ..

Agradecimento ao POPOS123 Pelo Guia G29 Motherboard ! Merece muito ...

Enquanto a Placa 1 (Principal) gerencia o cálculo bruto do motor de força e os eixos analógicos conversando direto com o PC via USB, a Placa 2 (Auxiliar) cuida exclusivamente de ler a rotação do volante e decodificar os botões e LEDs do aro.

Lista de Materiais da Bancada:

  • 02 Placas Blue Pill (STM32F103C8T6)

  • 01 Gravador ST-Link V2 (para injetar os firmwares .hex e G29emu.bin)

  • 01 Sensor Magnetômetro MLX90363 (responsável por ler a posição real de rotação do volante)

  • 01 Driver de Potência Ponte H BTS7960 de 43A (para controlar os motores de FFB)

  • Resistores de 10Ω e Transistores BC547 (546 ou 548 tbm serve) (para a montagem da matriz de chaves)

  • Placa de circuito perfurada (ilhada), fios finos para jumper e estanho de boa qualidade.

A Saga da Montagem: Do Caos da Protoboard à Solda Direta

Quem trabalha com eletrônica sabe que a protoboard é nossa melhor amiga no começo, mas pode virar nossa pior inimiga em projetos de alta velocidade digital.

Primeira Fase: O Labirinto na Protoboard

Inicialmente, estruturei todo o circuito usando réguas de protoboard e cabos jumper. Conseguimos alimentar as placas e unificar as linhas de 5V, 3.3V e o GND comum (essencial para que as duas Blue Pills falem a mesma língua).

No entanto, começamos a enfrentar comportamentos fantasmas: a barra de LEDs do aro ficava travada acesa e o Windows registrava um "botão 17" pressionado direto. Descobrimos que o firmware monitorava uma matriz virtual de botões extras (BUTTON MATRIX VIRTUAL) e a falta de componentes físicos deixava as portas lógicas flutuando, gerando ruído estático.



Segunda Fase: Solda Fio a Fio Definitiva

Para eliminar qualquer dúvida sobre mau contato, trilhas partidas ou resistência alta nos furos da protoboard, limpei a bancada e soldei tudo direto entre as proprias Bluepill. Encurtei os fios ao máximo e montei fisicamente a matriz com os resistores de 10Ω na base dos transistores BC547. Mas a Matrix de botões ainda não funcionaram , achei que soldando eu teria eliminado um possivel mal contato ... folga etc ... 


O Que Já Conseguimos Fazer Funcionar ?

Se você acha que o projeto está travado, dá uma olhada no nível de progresso que já alcançamos nas nossas linhas de código e conexões:

  • Pedais Originais Respondendo 100%: Acelerador, freio e embreagem foram mapeados diretamente nas portas analógicas da Blue Pill 1 (A2, A3 e A4). O Windows reconhece o curso completo de cada pedal de forma suave e precisa.

  • Leitura de Direção Perfeita (X e Y): O magnetômetro MLX90363 foi integrado com sucesso via barramento SPI na Blue Pill 2. Quando eu giro o volante fisicamente, os eixos respondem em tempo real no software do PC.

  • Comunicação I2C Ativa e LEDs Progressivos: A ponte de dados entre as duas Blue Pills (PB8 com PB8 e PB9 com PB9) está voando! A prova viva disso é que, quando eu piso no acelerador, a barra de LEDs de RPM do aro do G29 acende de forma progressiva, exatamente como no hardware original da Logitech.

O Que Ainda Não Conseguimos (E Como Estamos Correndo Atrás)

Nem tudo é perfeito na primeira tentativa, e ainda temos dois grandes mistérios para desvendar no próximo vídeo e artigo:

1. O Mistério dos Botões Inoperantes do Aro

Apesar de a pinagem estar correta e os LEDs receberem dados, nenhum botão do aro responde ao clique no Windows. Como os LEDs funcionam, o chicote está bom.

Investigamos duas frentes: a primeira é de hardware — os botões do aro passam por dois circuitos integrados Shift Register (os chips 74HC165) em cascata de dentro do volante. Se o chip de saída estiver queimado ou sem sincronismo de Clock, ele mata todos os botões enquanto os LEDs (que usam outra linha de entrada) continuam piscando. A segunda frente é de software: o firmware pode estar retendo a leitura dos botões em modo de segurança até que o utilitário do projeto (EMC Utility Pro) faça o pareamento oficial via USB.

2. A Ativação do Force Feedback (BTS7960)

Conectamos os pinos de ativação (R_EN e L_EN no pino PA8), mas o motor ainda não gerou torque. Suspeitamos que a fonte original do G29 (de apenas 1.75A) desarme por proteção de sobrecorrente assim que a ponte H tenta puxar potência para mover o volante. Vamos testar o ganho de força usando uma fonte chaveada de maior amperagem (pelo menos 5A).

Conclusão e Próximos Passos

O balanço geral é extremamente positivo: temos um volante que já gira, lê pedais e acende o painel direto no PC. Saímos de uma carcaça condenada ao lixo para um protótipo funcional de simulador que bate de frente com placas de ponta.

Falta muito pouco! O próximo passo é analisar os chips integrados do aro com o multímetro e destravar a inicialização do software para liberar o torque do motor e os cliques dos botões.. porem eu ainda não descarto a hipotese de ter algo no codigo .. vou tentar contato com o Popos , criador do projeto pra tirar algumas duvidas ... abaixo vou deixar um video do sistema funcionando ... ainda experimental , mas ja funciona algumas coisas 





0 comments: