Clientes do automóvel e da indústria confiam na minha experiência embedded desde a fundação da SCHMITT CONSULTING. Dois projetos ilustram a minha forma de trabalhar.
Como consultor embedded independente, desenvolvo para clientes que precisam de software próximo do hardware, comportamento de tempo real ou da combinação de ambos. A minha atividade vai do contrato a preço fixo com compromisso firme de entrega, passando pelos regimes de horas, até ao acompanhamento de departamentos de desenvolvimento durante vários meses.
Por motivos de confidencialidade, nem todos os projetos podem ser apresentados publicamente. Os dois exemplos abaixo descrevem projetos cujos dados-chave posso mencionar — e que ilustram a minha forma de trabalhar.
Para a Stihl, em Waiblingen, redesenhei integralmente o software de controlo de motor de uma motosserra. O ponto de partida foi uma tarefa de análise: o software de controlo existente vinha de um fornecedor japonês e estava escrito em assembler. A Stihl queria perceber em detalhe o que esse software fazia. Analisei o código assembler e documentei as funções de modo a que os programadores da Stihl pudessem seguir integralmente a lógica.
Sobre essa base recebi a adjudicação de um redesenho — desta vez em C, com o objetivo de entregar mais funcionalidade do que o software original. As restrições eram duras: o mercado das motosserras é extremamente competitivo no preço, pelo que apenas estava disponível um microcontrolador muito pequeno e barato. A memória era tão apertada que um sistema operativo de tempo real estava fora de questão. O software tinha de correr bare-metal e processar em paralelo, de forma fiável, sinais de tempo real provenientes do hardware.
Durante todo o desenvolvimento tive apenas a placa com o hardware e o meu código em cima da mesa — sem ambiente de ensaio, sem motor. O primeiro ensaio prático teve lugar na bancada da Stihl em Waiblingen. Após meses de análise e desenvolvimento, não teria sido invulgar que o motor não pegasse à primeira. Pegou de imediato e funcionou no essencial bem. O resto foi afinação dos pontos de ignição, otimizada iterativamente na bancada — um procedimento normalmente coberto por software de aprendizagem adaptativa, mas que aqui teve de ser feito manualmente por motivos de memória.
No fim entreguei à Stihl um software de controlo que fazia mais do que a versão japonesa anterior, corria no mesmo microcontrolador económico e foi entregue com documentação completa. É de notar o quadro comercial: na negociação final no departamento de compras da Stihl, o preço previamente acordado não foi reduzido. O comprador apenas deixou claro que cada euro tinha de ser justificável — mas baixar o preço não era o objetivo. Esta experiência — um cliente que paga preços justificáveis por qualidade justificável — é rara no mercado e marca até hoje a minha compreensão de uma boa cooperação.
O projeto foi tratado como contrato a preço fixo. O desenvolvimento decorreu inteiramente fora das instalações da Stihl; a coordenação com o interlocutor da Stihl ocorreu apenas em decisões fundamentais. Esta forma de cooperação revelou-se extraordinariamente eficaz.
Para a Audi, em Ingolstadt, a minha adjudicação original foi a criação de um software de simulação de bus MOST para um sistema de infoentretenimento — uma simulação em tempo real que permitia ensaiar unidades de comando contra um bus MOST virtual.
No local, tornou-se evidente que a Audi tinha em paralelo um segundo problema: uma placa de simulação CAN existente, fornecida por um fornecedor externo, não funcionava de forma fiável em determinadas condições de operação — simplesmente deixava de enviar dados em momentos decisivos. Como o meu trabalho MOST me tinha dado conhecimento detalhado das interações entre bus CAN e MOST, o interlocutor da Audi perguntou-me se podia reconstruir esta simulação CAN de forma independente.
Aceitei, com a observação de que o primeiro passo seria um protótipo funcional — não bonito, mas operacional. Em menos de cinco dias úteis, estava em cima da mesa uma placa eletrónica do meu próprio projeto com um ATmega128, acompanhada de software de simulação por mim escrito. O protótipo estava cablado à mão, mas funcionava — mesmo nas condições de operação em que a placa do fornecedor anterior tinha falhado.
A Audi perguntou então se podia fabricar e fornecer unidades — mas em qualidade industrial, totalmente fabricadas à máquina, não à mão. Concebi o traçado para a placa de série e trabalhei com um fabricante de PCB do ambiente Audi que se encarregou do fabrico à máquina. Após resolver uma incidência no ensaio à máquina do fabricante, a placa entregava resultados fiáveis — exatamente onde a placa do fornecedor original tinha falhado.
Este projeto mostra um caso em que uma adjudicação cresceu por substância técnica concreta: à tarefa de software original juntou-se um desenvolvimento próprio de hardware com produção em série — porque conhecia a arquitetura do bus com profundidade suficiente para propor a pedido um caminho de solução funcional.
Para além dos projetos descritos em detalhe acima, trabalhei para outros clientes em automóvel, indústria e médico. A seleção acima segue o critério de que os dados-chave são publicamente apresentáveis. Referências mais concretas para tarefas comparáveis ao seu contexto discutem-se com prazer numa primeira conversa — sob confidencialidade se desejado.
Três propriedades atravessam ambos os projetos e a maior parte da minha atividade: