Depurando un BadUSB de Pi Zero 2W con Claude Code: Solucionando un error 'imposible'

Hace unos 10 meses, un desarrollador creó un kit BadUSB para Pi Zero 2W, pero una función — "reinicio completo entre ataques" — nunca funcionó. Marcada como WIP, fue abandonada. Esta semana, reconstruyeron el proyecto de principio a fin con Claude Code como programador en pareja. Resultado: la función "imposible" ahora funciona, y la sesión descubrió varios bugs sutiles.
Lo que hizo Claude Code
- Diagnosticó la causa raíz de una lectura: El listener monitoreaba la existencia de
/dev/hidg0— verdadera desde el arranque — por lo que ejecutaba payloads al encenderse independientemente de la conexión al host. La señal correcta es/sys/class/udc/<udc>/state == "configured". - Confirmó empíricamente una limitación de hardware: Cuando la primera solución no funcionó del todo, Claude accedió por SSH, pidió al desarrollador conectar/desconectar mientras consultaba sysfs y el registro
regdumpde dwc2 debugfs. Encontró que el registroGOTGCTLse congela en0x000d0000independientemente del estado del cable — el Pi Zero 2W no tiene detección VBUS conectada al bloque OTG del SoC. Cambió a una solución de desvinculación activa con enfriamiento y protección de límite de velocidad. - Detectó un bug silencioso en Python:
open(udc_path, "w").write("")no invocawrite(2)con cero bytes — elTextIOWrapperde CPython omite la llamada. La desvinculación fue un no-op durante una hora de pruebas. Se corrigió aos.write(fd, b"\n")para forzar una syscall. - Corrigió la destrucción prohibida en configfs:
rm -rffallaba porque configfs prohíbe desvincular archivos de atributos gestionados por el kernel. La secuencia correcta es solormdir, de hoja a raíz. - Escribió una suite de pruebas pytest de 34 tests contra un motor HID simulado, permitiendo probar el analizador en cualquier host sin un Pi.
- Actualizó la memoria de IA: El desarrollador usa Postgres como memoria a largo plazo para Claude — esas entradas de bugs ahora se referencian en proyectos similares de configfs/USB-gadget.
Toda la sesión de trabajo tomó unas 4 horas, principalmente esperando la conexión/desconexión física. El PR tuvo seis commits bien delimitados con etiquetas de coautor y un plan de pruebas. El proyecto (Pi-Zero-2W-Bad-USB) tiene licencia MIT, con lenguaje de payload estilo Ducky-Script, variables, IF/WHILE, HOLD/RELEASE, INJECT MOD, RANDOM *, mapas de teclado US/UK, gadget opcional de almacenamiento masivo RO, integración con systemd e instalador idempotente.
Para desarrolladores que trabajan con flujos de hardware en bucle con Claude Code, este es un caso de estudio convincente de depuración asistida por IA a nivel de sysfs y registros.
📖 Lee la fuente original: r/ClaudeAI
👀 Ver también

El Desarrollo del Agente OpenClaw Impone Claridad en la Toma de Decisiones
Un usuario de Reddit informa que construir un agente OpenClaw les obligó a definir su estructura de memoria, articular sus procesos de toma de decisiones y notar patrones de delegación, lo que condujo a ganancias personales de productividad gracias a la autorreflexión.

Usuario de Reddit ejecuta 25+ agentes de IA programados como personas personales en Mac: ¿Esto es útil o solo complejidad?
Un desarrollador comparte su configuración personal de IA con más de 25 agentes programados en un Mac, organizados en cuatro personajes (Esposa, Hija, Hijo y un monitor) que automatizan trabajo, proyectos de código abierto, pasatiempos y PR de GitHub — y pregunta a la comunidad si es genuinamente útil o complejidad por la complejidad misma.

Conoce a Claude: Una Novela Visual Creada Completamente por IA
Un desarrollador creó una novela visual satírica llamada Meet Claude utilizando Claude AI para la escritura, programación, arte, música y despliegue. El juego explora la dependencia de los asistentes de IA y está disponible gratis en Steam con múltiples finales.

Neuberg: Terminal de Trading Multi-Mercado de Código Abierto Desarrollado con Claude AI
Neuberg es una terminal de trading basada en navegador que se conecta a mercados como Hyperliquid, Polymarket y Alpaca, construida utilizando Claude y Claude Code. El proceso de desarrollo reveló fortalezas específicas en la crítica arquitectónica y la refactorización, junto con limitaciones en la gestión de contexto largo y sistemas en tiempo real.