He probado los módulos bluetooth de Bluegiga con la interfaz iwrap ascii y te permiten abrir conexiones rfcomm "sin procesar".
El más básico es el WT12 que tiene las funciones de rfcomm que necesita. WT11i es una versión de rango más largo y WT41 es una versión de rango muy largo. WT32 tiene características de audio más avanzadas como A2DP.
Es necesario crear una cuenta en su techforum para poder acceder a la última guía de usuario de iwrap > ( enlace )
El proceso es ligeramente diferente según el clima que esté abriendo un canal rfcomm del módulo al dispositivo externo, o el dispositivo externo le está abriendo la conexión.
Como probablemente sepa, al abrir una nueva conexión, la forma habitual de descubrir qué canal RFCOMM se debe usar es registrar las entradas SDP para un servicio y el canal RFCOMM para ello.
Sin embargo, con iwrap puede omitir el paso de descubrimiento de SDP si conoce el canal RFCOMM para llamar.
Para abrir un canal rfcomm en otro dispositivo, el comando que debe dar es "CALL 00: 07: 80: 80: 52: 27 1 RFCOMM". Para más detalles, consulte la documentación del comando CALL.
También puede realizar consultas SDP manuales para descubrir el canal rfcomm de cualquier servicio o incluso el canal l2cap para los servicios que no usan rfcomm.
La comunicación a través del rfcomm puede estar en modo "transparente", en cuyo caso todas las letras que envíe a través de UART se transmitirán a través de Bluetooth. Alternativamente, puede usar un formato de paquete binario simple llamado mux frame. En cualquier caso, puede configurar gpio pins para alternar cuando tiene una conexión y cuando no la tiene, e incluso usar autollamada para hacer que la conexión de rfcomm se abra automáticamente cuando inicie el módulo.
Si necesita que el dispositivo externo llame al módulo, el otro dispositivo también puede llamar a los canales de rfcomm directamente. Ya hay un canal de rfcomm entrante inicializado para el perfil SPP que tiene el número 1. Y no se asuste con la parte SPP en la llamada entrante, el SPP para el módulo solo significa que se registró la entrada sdp correcta, pero cualquier Un dispositivo externo capaz de llamar directamente a un canal de rfcomm (como otro módulo iwrap) puede llamar directamente a rfcomm sin leer las entradas del SDP.
Edit: Ah, y si está buscando una tabla de ruptura, aquí hay una: enlace (aunque realmente no debería colocar ningún PCB o metal delante de la antena como en ese diseño, el rango se verá afectado de acuerdo con las pautas de diseño de Bluegiga RF, pero no funcionará, así que funciona para pruebas) .