O que Linus Torvalds faz quando está cansado do kernel Linux
Imagine o criador do Linux e do Git decidindo no seu tempo livre mergulhar no design de circuitos analógicos e processamento de áudio digital. O resultado é o projeto GuitarPedal no GitHub. É um pedal multiefeito completo para guitarra, onde o próprio Linus projetou as placas de circuito impresso no KiCad e escreveu o firmware em C.
O projeto surgiu de um antigo protótipo abandonado. Antes, tinha potenciômetros analógicos, que eram um pesadelo para configurar. Agora o pedal tem uma tela OLED, um par de codificadores e um microcontrolador novo.
Hardware Modular e Conectores Minúsculos
O hardware é construído em um design modular e desmontável. Em vez de rotear todo o circuito em uma única placa grande, Linus dividiu o dispositivo em quatro módulos separados.
A primeira placa carrega o microcontrolador RP2354 da família Raspberry Pi Pico 2. A segunda placa abriga o codec de áudio TI TAS5720L, que digitaliza o sinal da guitarra. O terceiro módulo contém os conectores de energia de 9V e jacks de áudio, e o quarto cuida da interface com a tela 128x128, footswitches e codificadores.

Os módulos se conectam entre si através de um cabo FFC plano de 12 pinos. A transferência de dados ocorre via I2C para controle e I2S para áudio. As placas usam conectores HiRose BM28 com passo de apenas 0,35 mm. Torvalds afirma abertamente no README que trabalhar com componentes tão microscópicos durante a montagem manual é difícil. Mas eles permitem acomodar tudo em um invólucro compacto.
O autor enfatiza: a modularidade foi necessária para experimentar o layout. Se você decidir replicar o design, seria mais sensato colocar o codec diretamente na placa de conector e o microcontrolador na placa de controle. Isso elimina a montagem em dupla face e cabos flat complexos.

Controle e Compilação do Firmware
No topo do invólucro há um display monocromático. Abaixo dele estão dois codificadores rotativos com botões integrados e dois footswitches.
O codificador superior altera o valor do parâmetro atual, e pressioná-lo alterna para o próximo parâmetro na lista. O codificador inferior percorre os próprios efeitos. O footswitch esquerdo ativa ou desativa o efeito selecionado com um toque do pé, e o direito alterna o pedal para o modo de bypass do sinal.
A compilação do firmware é direta, sem complicações desnecessárias. O código fonte é escrito em C puro com bindings para pico-sdk e tinyusb. No Linux o processo fica assim:
git clone https://github.com/torvalds/GuitarPedal.git
cd GuitarPedal/Software
make prep
make
No diretório build/, o arquivo blink.uf2 pronto aparece. Para fazer o flash do dispositivo, você precisa segurar ambos os codificadores ao conectar via USB e simplesmente copiar o arquivo para a unidade virtual que aparece.
O Que Tem Dentro do DSP
A parte mais interessante do repositório está na pasta de processamento de software. Torvalds escreveu seu próprio conjunto de algoritmos DSP. Os cálculos são executados em formato de ponto flutuante de 32 bits.
Aqui está o que o pedal já consegue fazer:
- Noise Gate. O nível de threshold desce até -85 dBV. O código calcula parâmetros de attack e decay para cortar o zumbido do captador sem cortar rapidamente as caudas das cordas. O LED de status muda de brilho quando o gate é acionado.
- Compressor. Funciona com tempo de attack ajustável, decay e nível de makeup gain.
- Boost com limitação de sinal. Em vez do clipping padrão de onda, Linus usou signal folding. Quando a amplitude excede o threshold, a onda não é cortada — ela retorna ao redor. Isso cria um espectro harmônico rico.
- Echo e delays. O efeito Echo King foi portado do projeto Hothouse e emula o tape delay Maestro Echoplex. Phaser e flanger básicos também estão presentes nas proximidades.
- Pitch shifter. Funciona sem transformada rápida de Fourier pesada. O algoritmo usa um ring delay buffer com duas fases e suavização senoidal nas junções. Adicionar feedback produz um efeito de eco com desvio gradual de altura.
- Equalizador de dez bandas. Cada banda é ajustável de -20 dB a +20 dB, e a resposta de frequência atual é desenhada como um gráfico na tela.
O código também tem um stub para enviar áudio via USB para um computador, embora o próprio Linus alerte sobre a instabilidade dessa parte.
Por Que Ver Este Projeto
O repositório GuitarPedal é interessante não tanto como um instrumento musical acabado, mas como um exemplo claro de desenvolvimento embedded de ciclo completo feito por uma pessoa.
Aqui você pode encontrar:
- Esquemas e layout prontos no KiCad com exemplos de trabalho em um invólucro compacto
- Código C nativo para trabalhar com codec de áudio via I2S nos chips RP2040 e RP2354
- Algoritmos matemáticos claros para efeitos de guitarra sem bibliotecas externas pesadas
- UI simples para telas OLED baseada em codificadores
Se você quer entender DSP em microcontroladores ou ver como Torvalds escreve código fora do kernel Linux, estudar este repositório definitivamente vale a pena.
Projetos relacionados