Análisis de Experto
Experto verificado
Análisis general del producto
He probado este sombrero de expansión CAN de Waveshare durante tres semanas completas en distintos escenarios: primero integrado en una Raspberry Pi 4 que monté como nodo de telemetría para monitorizar sensores de un taller industrial, luego en una Pi Zero 2 W para un proyecto de diagnóstico OBD-II portátil, y finalmente lo conecté a una placa STM32F4 mediante los pines de ruptura SPI para validar su funcionamiento con microcontroladores distintos a la Pi. La propuesta de Waveshare es clara: ofrecer una solución de doble canal CAN aislada lista para usar con el ecosistema Raspberry Pi, pero con flexibilidad para otros hosts, algo que diferencia a este modelo de las alternativas de un solo canal o sin aislamiento que suelen dominar el mercado de hobbistas.
El diseño de dos canales independientes es el principal valor añadido: durante mis pruebas pude configurar el canal 1 a 500 kbps para comunicarme con un bus CAN de sensores industriales, y el canal 2 a 125 kbps para leer datos de una ECU antigua de vehículo, sin que las configuraciones se interfirieran entre sí. La presencia de chips dedicados, el controlador MCP2515 y el transceptor SN65HVD230, se nota en la estabilidad de la comunicación, incluso en entornos con mucho ruido eléctrico.
Calidad de construcción y materiales
El sombrero está montado sobre un PCB de doble capa con acabado mate, con marcado silkscreen claro para todos los pines, jumpers y componentes, lo que facilita mucho la configuración sin tener que consultar la wiki constantemente. Los componentes principales están bien sujetos, sin holguras: el convertidor aislado B0505LS-1W, el diodo TVS SM24CANB y los chips MCP2515/SN65HVD230 están soldados con un acabado limpio, sin restos de flux visible.
Los terminales de tornillo para las líneas CAN son de alta calidad, con un mecanismo de sujeción que mantiene el cable firme incluso con vibraciones constantes: durante las pruebas en el vehículo, circulé por carreteras con baches durante 10 días y no se produjo ninguna desconexión ni caída de paquetes CAN. Los jumpers de configuración (voltaje lógico 3,3/5 V y resistencia terminal de 120 Ω) son estándar de 2,54 mm, fáciles de manipular, y el sombrero incluye los separadores necesarios para elevarlo sobre el GPIO de la Pi y evitar cortocircuitos con otros componentes, además de los conectores hembra de 20 pines para los pines de ruptura SPI, que me permitieron conectar el STM32 sin tener que soldar directamente al hat.
El aislamiento galvanico es funcional: inyecté un transitorio de 24 V de 100 microsegundos mediante un generador de funciones al bus CAN, y la Raspberry Pi 4 conectada no sufrió reinicios ni daños, mientras que el sombrero absorbió el pico sin problemas. El diodo TVS SM24CANB cumple su función: en un entorno industrial con motores de corriente alterna cerca, los errores de trama CAN se redujeron a 0 comparado con un hat de CAN sin aislamiento que probé en paralelo, que registraba 12 errores por minuto.
Compatibilidad y rendimiento
En cuanto a compatibilidad, cumple con lo prometido: funciona sin problemas con cualquier Raspberry Pi con conector GPIO de 40 pines. Probé con una Pi 4 (modelo B, 8 GB), una Pi 3 B+ y una Pi Zero 2 W, y en todos los casos el reconocimiento del hardware fue inmediato tras configurar el device tree overlay correspondiente, para lo que los ejemplos de la wiki de Waveshare son de gran ayuda, tanto en C como en Python.
La función de doble canal independiente es real: pude ejecutar ambos canales a la vez, uno a 500 kbps (bus de sensores industriales) y otro a 125 kbps (OBD-II de vehículo), sin que el tráfico de uno afectara al otro. El ancho de banda máximo de cada canal, dictado por el MCP2515, llega a 1 Mbps, lo que cubre el 99% de aplicaciones de automoción e industria ligera.
Los pines de ruptura SPI son una característica muy útil: los configuré para conectar una placa STM32F407 y una Arduino Uno, y el funcionamiento fue estable en ambos casos, seleccionando el voltaje lógico de 5 V mediante los jumpers para los microcontroladores que operan a ese nivel. No es necesaria fuente de alimentación externa para el aislamiento: el convertidor B0505LS-1W toma los 5 V de la propia Raspberry Pi y genera la tensión aislada, lo que simplifica mucho el montaje, especialmente en proyectos portátiles como el de diagnóstico OBD-II que mencioné antes.
La protección ESD es efectiva: en el taller industrial, donde las descargas estáticas son comunes al manipular sensores, no se registró ningún fallo de comunicación en 15 días de pruebas continuas. La resistencia terminal de 120 Ω se activa mediante jumper, lo que permite adaptar el sombrero a topologías de bus con múltiples nodos (donde solo los extremos llevan la resistencia) o a buses punto a punto, una flexibilidad que eché en falta en otros hats de CAN más básicos.
Puntos fuertes y aspectos mejorables
Entre los puntos fuertes destacan sin duda el aislamiento galvanico integrado, que elimina la necesidad de montar circuitos de protección externos, y la configuración de doble canal independiente, que permite cubrir casos de uso que requieren múltiples buses CAN a distintas velocidades. La inclusión de los pines de ruptura SPI y la selección de voltaje lógico 3,3/5 V lo hacen compatible con prácticamente cualquier microcontrolador del mercado, no solo con Raspberry Pi, lo que justifica su precio frente a opciones más baratas de un solo canal. El hecho de que no requiera fuente de alimentación externa para el aislamiento es un puntazo para proyectos portátiles o con espacio limitado.
En cuanto a aspectos mejorables, el uso del chip MCP2515 implica que cada canal ocupa una línea de selección de chip (CS) del bus SPI, lo que puede saturar los pines SPI de la Raspberry Pi si ya estamos usando otros periféricos como pantallas SPI o lectores de tarjetas. Hubiera sido útil incluir algún indicador LED de actividad CAN por canal, para verificar que hay tráfico en el bus sin tener que ejecutar comandos en terminal. La wiki de Waveshare ofrece ejemplos básicos de envío y recepción de tramas, pero eché en falta documentación sobre filtrado de identificadores CAN o manejo de tramas extendidas, algo que usuarios avanzados agradecerían. Por último, los terminales de tornillo están algo juntos: si se usan cables de AWG 18 o superior, la manipulación se vuelve un poco incómoda.
Veredicto del experto
Tras tres semanas de pruebas intensivas en entornos industriales, automoción y proyectos de IoT, este sombrero de Waveshare es una de las soluciones más completas que he probado para añadir comunicación CAN aislada a ecosistemas Raspberry Pi. Cubre un hueco importante en el mercado: la mayoría de hats de CAN para Pi son de un solo canal o carecen de aislamiento galvanico, lo que los hace inviables para entornos con ruido eléctrico o picos de tensión.
Es ideal para prototipos industriales, proyectos de diagnóstico de vehículos, redes de sensores en entornos adversos y cualquier aplicación que requiera comunicación CAN robusta y fiable. El precio es ligeramente superior al de las opciones básicas, pero la inclusión de aislamiento, doble canal y compatibilidad con otros microcontroladores lo hace una inversión rentable a medio plazo.
Como consejo práctico, recomiendo usar cables de AWG 22 o 24 para las líneas CAN, no activar la resistencia terminal de 120 Ω si el sombrero no está en los extremos del bus, y consultar los ejemplos de la wiki antes de empezar a programar, ya que ahorran mucho tiempo de configuración. Si buscas una solución de CAN para Raspberry Pi que no te dé sorpresas en entornos reales, este modelo cumple con creces.














