Qué hace Linus Torvalds cuando está cansado del kernel Linux
Imagina al creador de Linux y Git decidiendo en su tiempo libre adentrarse en el diseño de circuitos analógicos y el procesamiento de audio digital. El resultado es el proyecto GuitarPedal en GitHub. Es una pedalera multiefectos para guitarra con todas las funciones, donde el propio Linus diseñó las placas de circuito impreso en KiCad y escribió el firmware en C.
El proyecto surgió de un prototipo antiguo que había abandonado. Anteriormente tenía potenciómetros analógicos, que eran una pesadilla para configurar. Ahora la pedalera tiene una pantalla OLED, un par de codificadores y un microcontrolador nuevo.
Hardware Modular y Conectores Minúsculos
El hardware está construido con un diseño modular y desmontable. En lugar de enrutar todo el circuito en una sola placa grande, Linus dividió el dispositivo en cuatro módulos separados.
La primera placa lleva el microcontrolador RP2354 de la familia Raspberry Pi Pico 2. La segunda placa aloja el códec de audio TI TAS5720L, que digitaliza la señal de la guitarra. El tercer módulo contiene los conectores de alimentación de 9V y los jacks de audio, y el cuarto maneja la interfaz con la pantalla de 128x128, los pulsadores de pedal y los codificadores.

Los módulos se conectan entre sí mediante un cable plano FFC de 12 pines. La transferencia de datos se realiza a través de I2C para control e I2S para audio. Las placas utilizan conectores Hirose BM28 con un paso de apenas 0,35 mm. Torvalds declara abiertamente en el README que trabajar con componentes tan microscópicos durante el ensamblaje manual es difícil. Pero permiten meter todo en una carcasa compacta.
El autor enfatiza: la modularidad era necesaria para experimentar con el diseño. Si decides replicar el diseño, sería más sensato colocar el códec directamente en la placa del conector y el microcontrolador en la placa de control. Esto elimina el ensamblaje por ambas caras y los cables planos complejos.

Control y Compilación del Firmware
Encima de la carcasa hay una pantalla monocromática. Debajo están los dos codificadores rotativos con botones integrados y dos pulsadores de pedal.
El codificador superior cambia el valor del parámetro actual, y al presionarlo se pasa al siguiente parámetro de la lista. El codificador inferior recorre los efectos. El pulsador izquierdo activa o desactiva el efecto seleccionado con un toque del pie, y el derecho cambia la pedalera al modo de derivación de señal.
La compilación del firmware es directa sin complicaciones innecesarias. El código fuente está escrito en C puro con enlaces a pico-sdk y tinyusb. En Linux el proceso es así:
git clone https://github.com/torvalds/GuitarPedal.git
cd GuitarPedal/Software
make prep
make
En el directorio build/ aparece el archivo blink.uf2 listo. Para flashear el dispositivo, necesitas mantener presionados ambos codificadores al conectar por USB y simplemente copiar el archivo a la unidad virtual que aparece.
Qué Hay Dentro del DSP
La parte más interesante del repositorio está en la carpeta de procesamiento de software. Torvalds escribió su propio conjunto de algoritmos DSP. Los cálculos se ejecutan en formato de punto flotante de 32 bits.
Esto es lo que la pedalera ya puede hacer:
- Noise Gate. El nivel de umbral baja hasta -85 dBV. El código calcula los parámetros de ataque y decaimiento para eliminar el zumbido de las pastillas sin cortar rápidamente las colas de las cuerdas. El LED de estado cambia de brillo cuando la compuerta se activa.
- Compresor. Funciona con tiempo de ataque ajustable, decaimiento y nivel de ganancia de compensación.
- Boost con limitación de señal. En lugar del recorte de onda estándar, Linus utilizó plegado de señal. Cuando la amplitud supera el umbral, la onda no se corta, vuelve sobre sí misma. Esto crea un espectro armónico rico.
- Eco y delays. El efecto Echo King fue portado del proyecto Hothouse y emula el delay de cinta Maestro Echoplex. También hay un phaser y flanger básicos.
- Cambiador de tono. Funciona sin transformada rápida de Fourier pesada. El algoritmo utiliza un buffer de retardo circular con dos fases y suavizado sinusoidal en las uniones. Añadir retroalimentación produce un efecto de eco con deriva gradual del tono.
- Ecualizador de diez bandas. Cada banda es ajustable de -20 dB a +20 dB, y la respuesta de frecuencia actual se dibuja como un gráfico en la pantalla.
El código también tiene un stub para enviar audio por USB a un ordenador, aunque el propio Linus advierte sobre la inestabilidad de esta parte.
Por Qué Mirar Este Proyecto
El repositorio GuitarPedal es interesante no tanto como instrumento musical terminado, sino como un ejemplo claro de desarrollo embebido de ciclo completo de una sola persona.
Aquí puedes encontrar:
- Esquemas y diseño de layout en KiCad listos para usar con ejemplos de trabajo en una carcasa compacta
- Código nativo en C para trabajar con un códec de audio vía I2S en chips RP2040 y RP2350
- Algoritmos matemáticos claros para efectos de guitarra sin bibliotecas externas pesadas
- UI simple para pantallas OLED basada en codificadores
Si quieres entender el DSP en microcontroladores o ver cómo programa Torvalds fuera del kernel de Linux, estudiar este repositorio definitivamente vale la pena.
Proyectos relacionados