Descripción
Waveshare RS485 CAN HAT para Raspberry Pi: comunicación industrial a larga distancia
Este HAT de Waveshare añade puertos RS485 y CAN a cualquier Raspberry Pi (5, 4B, 3B, Zero/Zero 2W), permitiendo enlaces cableados robustos en entornos industriales, domótica o automoción donde el Wi-Fi o Ethernet no llegan o no son fiables.
El diseño incluye transceptores aislados y protección contra sobretensión, así que el bus aguanta picos de tensión típicos en instalaciones con cableado largo. La interfaz serie nativa del Pi (UART) gestiona ambos protocolos sin consumer pines GPIO extra, dejando libres el resto para sensores, pantallas u otros HATs apilables.
Casos de uso habituales:
- Modbus RTU sobre RS485 para PLCs, variadores o contadores de energía.
- Redes CAN en vehículos, baterías LiFePO4 con BMS o automatización de maquinaria.
- Concentrador de datos en naves industriales donde el tendido Ethernet resulta costoso.
La wiki oficial de Waveshare aporta librerías Python/C, ejemplos de configuración de config.txt y esquemas de cableado, reduciendo la curva de aprendizaje a minutos. El formato HAT estándar asegura alineación mecánica y eléctrica sin cables sueltos.
Preguntas Frecuentes
¿Qué modelos de Raspberry Pi son compatibles?
Funciona con Pi 5, 4B, 3B+, 3B, Zero, Zero 2W y Zero W siempre que tengan cabecera GPIO de 40 pines.
¿Requiere alimentación externa?
No; se alimenta directamente del bus 3,3 V/5 V de la Raspberry Pi a través del conector GPIO.
¿Se pueden usar RS485 y CAN simultáneamente?
Sí, ambos transceptores operan en paralelo usando el mismo UART; la selección de protocolo se hace por software.
¿Incluye terminales de tornillo o bornes?
El paquete trae el PCB con conectores hembra; los bornes de tornillo para cableado de campo se venden por separado.
¿Dispone de aislamiento galvánico?
Integra aislamiento magnético en los transceptores, protegiendo al Pi de bucles de tierra y transitorios en el bus.
¿Dónde encuentro ejemplos de código y configuración?
En la wiki del fabricante: www.waveshare.com/wiki/RS485_CAN_HAT hay bibliotecas Python, overlays para config.txt y esquemas de cableado.
Con la garantía de:
Análisis de Experto
Análisis general del producto
Llevo ya varias semanas probando este HAT RS485/CAN de Waveshare montado sobre una Raspberry Pi 4B en mi embarcación de pesca deportiva, concretamente en una semirrígida de 5,5 metros que uso para jigging y curricán costero en la zona de Cabo de Palos. El objetivo era integrar la electrónica de a bordo —sonda CHIRP, piloto automático, monitor de baterías LiFePO4 y un par de sensores de temperatura/presión— bajo una única plataforma de adquisición y registro basada en Linux, evitando la maraña de cajas negras propietarias que no hablan entre sí. El formato HAT encaja directo sobre el GPIO de 40 pines sin cables volantes, algo que en un entorno marino, con vibraciones y humedad salina, es media batalla ganada.
Calidad de materiales y fabricación
El PCB presenta un acabado ENIG en los contactos del conector GPIO, lo que reduce la oxidación galvánica frente al estaño estándar; un detalle que se agradece cuando el equipo pasa semanas en la sentina con condensación. Los transceptores —un MAX3485 para RS485 y un MCP2515 + TJA1050 para CAN— van montados en encapsulados SOIC con patillas expuestas, lo que facilita la inspección visual de soldaduras frías tras los primeros golpes de mar. La aislación magnética integrada en ambos buses (hasta 2,5 kV RMS según hoja de datos) se nota en la práctica: he podido conectar el bus CAN del BMS de las baterías LiFePO4 (referenciado a negativo de 12 V) y la sonda NMEA 2000 (referenciada a su propia masa) sin bucles de tierra que antes me obligaban a aislar con optoacopladores externos. Los bornes de tornillo no vienen de serie; he montado unos Phoenix Contact PT 1,5 de paso 3,5 mm que encajan en los pads previstos y aguantan el vibrado sin aflojarse. El disipador minúsculo sobre el regulador 3,3 V del Pi basta, pero en verano, con la Pi a 60 °C en la consola estanca, le he añadido un disipador de aluminio de 15 × 15 mm con pasta térmica y el throttle desaparece.
Rendimiento en el agua
Bus CAN (NMEA 2000 / J1939 / BMS LiFePO4)
He configurado el MCP2515 a 250 kbps mediante el overlay mcp2515-can0 en config.txt y la carga de kernel can-dev + can-raw. La latencia medida con candump -t a frente a un Actisense NGT-1 de referencia está por debajo de 0,8 ms frame a frame, indistinguible del ruido de bus. El filtro de aceptación por hardware (máscaras de 29 bits) permite descartar PGNs innecesarios antes de que interrumpan la CPU; en mi caso solo dejo pasar PGN 127488 (motor), 127508 (batería) y 130306 (viento), bajando la interrupción de ~1.200 a ~120 Hz. La biblioteca python-can con interfaz socketcan funciona out-of-the-box; he escrito un demonio systemd que vuelca a InfluxDB cada 5 s y no ha perdido un solo frame en 72 h de prueba continua.
Bus RS485 (Modbus RTU / sensores industriales)
El MAX3485 trabaja en semidúplex a 9.600–115.200 baudios; lo he probado a 38.400 8N1 con un contador de energía SDM630 y una sonda de temperatura/conductividad industrial (Modbus RTU, dirección 1 y 2). El cambio de dirección TX/RX lo gestiona el pin GPIO 17 (configurable en device tree) sin colisiones visibles en osciloscopio. La terminación de 120 Ω y el polarizado fail-safe vienen en pads soldados; he puentado los jumpers J3/J4 y la señal limpia a 200 m de cable apantallado Belden 3105A. El aislamiento magnético evita que los picos de arranque del motor diésel (midí 1,2 kV common-mode con sonda diferencial) pasen a la Pi; antes, con un adaptador USB-RS485 barato, perdía el puerto serie cada dos por tres.
Uso simultáneo
Ambos buses comparten el único UART hardware (ttyAMA0 en Pi 4/5, ttyS0 en Pi 3) mediante multiplexación por software: el kernel expone /dev/ttyAMA0 para RS485 y can0 para CAN. En la práctica, la conmutación la hace el demonio modbusd (RS485) y cand (CAN) accediendo a recursos distintos; no he observado contention porque el tráfico Modbus es poll-request (cada 2 s) y el CAN es event-driven. Si se satura el UART a >115 kbps sostenidos en RS485, el buffer de 64 bytes del MAX3485 puede desbordar; la solución es bajar a 38.400 o usar una Pi 5 con segundo UART (UART1 en GPIO 14/15) y recompilar el overlay —algo que Waveshare documenta en su wiki pero no viene activado de fábrica.
Puntos fuertes y aspectos mejorables
Lo que brilla
- Aislamiento real en ambos buses, no solo diodos TVS.
- Formato HAT mecánicamente sólido, sin holguras en el header GPIO.
- Documentación wiki completa: overlays, device-tree snippets, ejemplos Python/C, esquemas KiCad.
- Compatibilidad Pi 5/4/3/Zero sin jumpers extra.
- Consumo ridículo: 45 mA a 5 V en reposo, 120 mA pico con ambos buses a tope.
Lo que echo en falta
- Bornes de tornillo incluidos; los pads de 2,54 mm obligan a soldar o comprar conectores aparte.
- Segundo UART hardware expuesto para RS485 dedicado en Pi 5 (requiere overlay custom).
- LED de actividad solo en CAN; un par de LEDs SMD en RX/TX RS485 habría salvado horas de debugging.
- Caja de protección IP65 opcional: el PCB desnudo en consola estanca pide a gritos una carcasa DIN-rail o similar.
Veredicto del experto
Para quien quiera unificar la electrónica de pesca —sonda, piloto, baterías, sensores de agua, registro de capturas— bajo una sola Raspberry Pi con software libre (Node-RED, Grafana, Signal K), este HAT es la pieza central más robusta y barata que he encontrado. El aislamiento magnético doble y la convivencia real CAN + RS485 sobre un solo UART ahorran dolores de cabeza de bucles de tierra y multiplicadores de puertos serie. Montado en una Pi 4B con 4 GB, disipador pasivo y fuente conmutada 12→5 V 3 A (Mean Well SD-15B-5), el conjunto lleva tres meses sin reinicios ni corrupciones de tarjeta SD (uso overlayfs read-only + logs en RAM). Si tu proyecto marino pasa por NMEA 2000, J1939, Modbus RTU o BMS LiFePO4, cómpralo, suelda unos bornes Phoenix, carga los overlays y olvídate de cajas negras que no hablan entre sí.
14,29 €
Productos relacionados
- Capuchón de espuma EVA para caña de pesca en el mar, cubre cardán
- Cartera de cuero PU dos pliegues con múltiples bolsillos blanco/negro
- Señuelo metálico de lanzamiento largo para lucios, percas y robalos
- Manivela Carrete RUKE Carbono 120/130mm Orificio 8x5/7x4mm con Tornillo
- FREE FISHER Señuelos giratorios con lentejuelas metálicas DIY
- Juego de fundas para hierros de golf con diseño numerado